CREATE TABLE LIKE
Gäller för: Databricks SQL
Databricks Runtime
Definierar en table med hjälp av definitionen och metadata för en befintlig table eller vy.
Delta Lake stöder CREATE TABLE LIKE
databricks SQL och Databricks Runtime 13.3 LTS och senare.
I Databricks Runtime 12.2 LTS och nedan använder du CREATE TABLE AS-.
Syntax
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 }
Parameters
OM INTE FINNS
Om det anges ignoreras -instruktionen om den
table_name
redan finns.-
Namnet på table som ska skapas. Namnet får inte innehålla en temporal specifikation eller alternativspecifikation. Om namnet inte är kvalificerat skapas table i schemaför tillfället. En table_name får inte redan finnas.
-
Namnet på den table vars definition kopieras.
source_table_name
ochtable_name
måste båda finnas i Hive-metaarkivet, eller båda vara på Unity Catalog. table_clauses
Du kan också ange datakällans format, plats och användardefinierade egenskaper för den nya table. Varje undersats kan bara anges en gång.
PLATSsökväg
Sökvägen till katalogen där where- ochtable-data lagras, vilket kan vara en sökväg på distribuerad lagring. Om du specificerar en plats blir den nya table en extern table. Om du inte anger någon plats är table en hanterad table.
Du kan inte skapa externa tables på platser som överlappar med platsen för hanterade objekt tables.
-
Du kan också ange en eller flera användardefinierade egenskaper.
ANVÄNDA data_source
Filformatet som ska användas för table.
data_source
måste vara något av följande:TEXT
CSV
JSON
JDBC
PARQUET
DELTA
Följande ytterligare filformat som ska användas för table stöds i Databricks Runtime:
ORC
HIVE
LIBSVM
- ett fullständigt kvalificerat klassnamn för en anpassad implementering av
org.apache.spark.sql.sources.DataSourceRegister
.
Om du inte anger
USING
kommer formatet för källan table att ärvas.Följande gäller för: Databricks Runtime
HIVE
stöds för att skapa en Hive SerDe-table i Databricks Runtime. Du kan ange Hive-specifikfile_format
ochrow_format
användaOPTIONS
-satsen, som är en skiftlägeskänslig strängkarta. Äroption_keys
:FILEFORMAT
INPUTFORMAT
OUTPUTFORMAT
SERDE
FIELDDELIM
ESCAPEDELIM
MAPKEYDELIM
LINEDELIM
RADFORMAT row_format
Gäller för:
Databricks Runtime
För att ange en anpassad SerDe, från set till
SERDE
, och ange det fullständigt kvalificerade klassnamnet för en anpassad SerDe samt valfria SerDe-egenskaper. För att använda den interna SerDe från set tillDELIMITED
och specificera avgränsare, escape-tecknet, null-tecken och så vidare.SERDEPROPERTIES
En uppsättning list nyckel/värde-par som används för att tagga SerDe-definitionen.
FÄLT SOM AVSLUTATS AV
Definiera en column avgränsare.
ESCAPE BY
Definiera escape-mekanismen.
SAMLINGSOBJEKT AVSLUTADE AV
Definiera en avgränsare för samlingsobjekt.
MAP-NYCKLAR AVSLUTADES AV
Definiera en mappningsnyckelavgränsare.
RADER SOM AVSLUTATS AV
Definiera en radavgränsare.
NULL DEFINIERAT SOM
Definiera det specifika värdet för
NULL
.LAGRAD SOM
Filformatet för table. Tillgängliga format är
TEXTFILE
, ,SEQUENCEFILE
RCFILE
,ORC
,PARQUET
ochAVRO
. Du kan också ange egna in- och utdataformat viaINPUTFORMAT
ochOUTPUTFORMAT
. Endast formatTEXTFILE
,SEQUENCEFILE
ochRCFILE
kan användas medROW FORMAT SERDE
och kan endastTEXTFILE
användas medROW FORMAT DELIMITED
.
Kommentar
Beroende på datakällan och målet kan inte alla egenskaper för tables överföras.
CREATE TABLE LIKE
när källan är en Delta Lake Table:
Funktion/egenskap | Målet är inte Delta (Table) | Målet är Delta Table |
---|---|---|
COMMENT | Ja | Ja |
Columns | Ja | Ja |
Partition columns | Ja | Ja |
Konfiguration | Nej | Ja |
Table Constraint | Inte tillämpligt | Ja |
Deltaprotokoll | Inte tillämpligt | Ja |
CREATE TABLE LIKE
när källa inte är en Delta Lake Table:
Funktion/egenskap | Målet är icke-Delta Table | Målet är en Delta Table |
---|---|---|
COMMENT | Ja | Ja |
Columns | Ja | Ja |
Partition columns | Ja | Ja |
Konfiguration | Ja | Ja |
Table Constraint | Nej | Ja |
Deltaprotokoll | Nej (aktuellt standardprotokoll för den sessionen) | Ja |
Exempel
-- 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';