Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:
Databricks SQL
Databricks Runtime
Definisce una tabella utilizzando la definizione e i metadati di una tabella esistente.
Delta Lake supporta CREATE TABLE LIKE Databricks SQL e Databricks Runtime 13.3 LTS e versioni successive.
In Databricks Runtime 12.2 LTS e versioni precedenti, usare CREATE TABLE AS.
Sintassi
CREATE TABLE [ IF NOT EXISTS ] table_name LIKE source_table_name [table_clauses]
table_clauses
{ USING data_source |
LOCATION path |
TBLPROPERTIES clause |
ROW FORMAT row_format |
STORED AS file_format } [...]
row_format
{ SERDE serde_class [ WITH SERDEPROPERTIES (serde_key = serde_val [, ...] ) ] |
{ DELIMITED [ FIELDS TERMINATED BY fields_terminated_char [ ESCAPED BY escaped_char ] ]
[ COLLECTION ITEMS TERMINATED BY collection_items_terminated_char ]
[ MAP KEYS TERMINATED BY map_key_terminated_char ]
[ LINES TERMINATED BY row_terminated_char ]
[ NULL DEFINED AS null_char ] } }
property_key
{ identifier [. ...] | string_literal }
Parametri
SE NON ESISTE
Se specificato, l'istruzione viene ignorata se l'oggetto
table_nameesiste già.-
Nome della tabella da creare. Il nome non deve includere una specifica temporale o una specifica delle opzioni. Se il nome non è qualificato, la tabella viene creata nello schema corrente. Un table_name non deve esistere già.
-
Nome della tabella la cui definizione viene copiata.
source_table_nameetable_namedevono essere entrambi nel metastore Hive o entrambi nel catalogo Unity. table_clauses
Facoltativamente, specificare un formato di origine dati, un percorso e le proprietà definite dall'utente per la nuova tabella. Ogni clausola secondaria può essere specificata una sola volta.
PERCORSO
Percorso della directory in cui sono archiviati i dati della tabella, che potrebbe essere un percorso nello storage distribuito. Se si specifica un percorso, la nuova tabella diventa una tabella esterna . Se non si specifica una posizione, la tabella è una tabella gestita .
Non è possibile creare tabelle esterne in posizioni che si sovrappongono alla posizione delle tabelle gestite.
-
Facoltativamente, imposta una o più proprietà definite dall'utente.
UTILIZZO del sorgente_dati
Formato di file da utilizzare per la tabella.
data_sourcedeve essere uno tra:TEXTCSVJSONJDBCPARQUETDELTA
I formati di file aggiuntivi da usare per la tabella sono supportati in Databricks Runtime:
ORCHIVELIBSVM- Nome completo della classe di un'implementazione di
org.apache.spark.sql.sources.DataSourceRegisterpersonalizzata.
Se non si specifica
USINGil formato della tabella di origine verrà ereditato.Il codice seguente si applica a: Databricks Runtime
HIVEè supportato per creare una tabella SerDe Hive in Databricks Runtime. È possibile specificarefile_formaterow_formatspecifici di hive usando la clausolaOPTIONS, ovvero una mappa di stringhe senza distinzione tra maiuscole e minuscole. Ioption_keyssono:FILEFORMATINPUTFORMATOUTPUTFORMATSERDEFIELDDELIMESCAPEDELIMMAPKEYDELIMLINEDELIM
ROW_FORMAT FORMATO RIGA
Si applica a:
Databricks RuntimePer specificare un SerDe personalizzato, impostare su
SERDEe specificare il nome completo di una classe SerDe personalizzata e le proprietà SerDe facoltative. Per usare il serDe nativo, impostare suDELIMITEDe specificare il delimitatore, il carattere di escape, il carattere Null e così via.SERDEPROPERTIES
Elenco di coppie chiave-valore usate per contrassegnare la definizione SerDe.
CAMPI TERMINATI DA
Definire un separatore di colonna.
ESCAPE BY
Definire il meccanismo di escape.
ELEMENTI DI RACCOLTA TERMINATI DA
Definire un separatore di elementi della raccolta.
CHIAVI DI MAPPING TERMINATE DA
Definire un separatore di chiave della mappa.
RIGHE TERMINATE DA
Definire un separatore di riga.
NULL DEFINITO COME
Definire il valore specifico per
NULL.ARCHIVIATO COME
Formato di file per la tabella. I formati disponibili includono
TEXTFILE,SEQUENCEFILE,RCFILEORC,PARQUET, eAVRO. In alternativa, è possibile specificare formati di input e output personalizzati tramiteINPUTFORMATeOUTPUTFORMAT. Solo i formatiTEXTFILE,SEQUENCEFILEeRCFILEpossono essere usati conROW FORMAT SERDEe possono essere usati soloTEXTFILEconROW FORMAT DELIMITED.
Note
A seconda dell'origine dati e della destinazione, non tutte le proprietà delle tabelle possono essere trasferite.
CREATE TABLE LIKE quando la fonte è una tabella Delta Lake:
| Feature/Property | Target è una tabella non delta | Target è una tabella delta |
|---|---|---|
| COMMENT | Sì | Sì |
| Colonne | Sì | Sì |
| Colonne di partizione | Sì | Sì |
| Impostazione | No | Sì |
| Vincolo di Tabella | Non applicabile | Sì |
| Protocollo Delta | Non applicabile | Sì |
CREATE TABLE LIKE quando la fonte non è una tabella Delta Lake:
| Feature/Property | Target è una tabella non delta | Target è una tabella delta |
|---|---|---|
| COMMENT | Sì | Sì |
| Colonne | Sì | Sì |
| Colonne di partizione | Sì | Sì |
| Impostazione | Sì | Sì |
| Vincolo di Tabella | No | Sì |
| Protocollo Delta | No (protocollo predefinito corrente per la sessione) | Sì |
Esempi
-- Create table using a new location
> CREATE TABLE Student_Dupli LIKE Student LOCATION '/path/to/data_files';
-- Create table like using a data source
> CREATE TABLE Student_Dupli LIKE Student USING CSV LOCATION '/path/to/csv_files';