CREATE TABLE LIKE
Si applica a: Databricks SQL Databricks Runtime
Definisce una tabella utilizzando la definizione e i metadati di una tabella o vista 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 successive 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_name
esiste già.-
Nome della tabella da creare. Il nome non deve includere una specifica temporale. 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_name
etable_name
devono 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 nell'archiviazione distribuita. Se si specifica una posizione, 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.
USING data_source
Formato di file da utilizzare per la tabella.
data_source
deve essere uno dei seguenti:TEXT
CSV
JSON
JDBC
PARQUET
DELTA
I formati di file aggiuntivi da usare per la tabella sono supportati in Databricks Runtime:
ORC
HIVE
LIBSVM
- Nome completo della classe di un'implementazione personalizzata di
org.apache.spark.sql.sources.DataSourceRegister
.
Se non si specifica
USING
il 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 specificare hive-specificfile_format
erow_format
usare laOPTIONS
clausola , ovvero una mappa di stringhe senza distinzione tra maiuscole e minuscole. Ioption_keys
sono:FILEFORMAT
INPUTFORMAT
OUTPUTFORMAT
SERDE
FIELDDELIM
ESCAPEDELIM
MAPKEYDELIM
LINEDELIM
ROW_FORMAT FORMATO RIGA
Si applica a: Databricks Runtime
Per specificare un SerDe personalizzato, impostare su
SERDE
e specificare il nome completo di una classe SerDe personalizzata e le proprietà SerDe facoltative. Per usare il serDe nativo, impostare suDELIMITED
e 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
,RCFILE
ORC
,PARQUET
, eAVRO
. In alternativa, è possibile specificare formati di input e output personalizzati tramiteINPUTFORMAT
eOUTPUTFORMAT
. Solo i formatiTEXTFILE
,SEQUENCEFILE
eRCFILE
possono essere usati conROW FORMAT SERDE
e possono essere usati soloTEXTFILE
conROW FORMAT DELIMITED
.
Note
A seconda dell'origine dati e della destinazione, non tutte le proprietà delle tabelle possono essere trasferite.
CREATE TABLE LIKE
quando l'origine è 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 table | Non applicabile | Sì |
Protocollo Delta | Non applicabile | Sì |
CREATE TABLE LIKE
quando l'origine 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 table | 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';