CREATE TABLE LIKE
Gäller för: Databricks SQL Databricks Runtime
Definierar en tabell med hjälp av definitionen och metadata för en befintlig tabell 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 }
Parametrar
OM INTE FINNS
Om det anges ignoreras -instruktionen om den
table_name
redan finns.-
Namnet på tabellen som ska skapas. Namnet får inte innehålla någon temporal specifikation. Om namnet inte är kvalificerat skapas tabellen i det aktuella schemat. En table_name får inte redan finnas.
-
Namnet på den tabell vars definition kopieras.
source_table_name
ochtable_name
måste båda finnas i Hive-metaarkivet, eller båda finnas i Unity Catalog. table_clauses
Du kan också ange datakällans format, plats och användardefinierade egenskaper för den nya tabellen. Varje undersats kan bara anges en gång.
PLATSsökväg
Sökväg till katalogen där tabelldata lagras, vilket kan vara en sökväg för distribuerad lagring. Om du anger en plats blir den nya tabellen en extern tabell. Om du inte anger någon plats är tabellen en hanterad tabell.
Du kan inte skapa externa tabeller på platser som överlappar platsen för hanterade tabeller.
-
Du kan också ange en eller flera användardefinierade egenskaper.
ANVÄNDA data_source
Det filformat som ska användas för tabellen.
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 tabellen 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
formatet för källtabellen ärvs.Följande gäller för: Databricks Runtime
HIVE
stöds för att skapa en Hive SerDe-tabell 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
Om du vill ange en anpassad SerDe anger du till
SERDE
och anger det fullständigt kvalificerade klassnamnet för en anpassad SerDe och valfria SerDe-egenskaper. Om du vill använda den inbyggda SerDe anger du tillDELIMITED
och anger avgränsare, escape-tecken, null-tecken och så vidare.SERDEPROPERTIES
En lista över nyckel/värde-par som används för att tagga SerDe-definitionen.
FÄLT SOM AVSLUTATS AV
Definiera en kolumnavgrä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 tabellen. 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 tabeller överföras.
CREATE TABLE LIKE
när källan är en Delta Lake-tabell:
Funktion/egenskap | Målet är en tabell som inte är delta | Målet är en deltatabell |
---|---|---|
COMMENT | Ja | Ja |
Kolumner | Ja | Ja |
Partitionskolumner | Ja | Ja |
Konfiguration | Nej | Ja |
Tabellvillkor | Inte tillämpligt | Ja |
Deltaprotokoll | Inte tillämpligt | Ja |
CREATE TABLE LIKE
när källan inte är en Delta Lake-tabell:
Funktion/egenskap | Målet är en tabell som inte är delta | Målet är en deltatabell |
---|---|---|
COMMENT | Ja | Ja |
Kolumner | Ja | Ja |
Partitionskolumner | Ja | Ja |
Konfiguration | Ja | Ja |
Tabellvillkor | 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';