CREATE TABLE LIKE
Platí pro: Databricks SQL Databricks Runtime
Definuje table pomocí definice a metadat existujícího table nebo zobrazení.
Delta Lake podporuje CREATE TABLE LIKE
databricks SQL a Databricks Runtime 13.3 LTS a vyšší.
V Databricks Runtime 12.2 LTS a níže použijte CREATE TABLE AS.
Syntaxe
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
POKUD NEEXISTUJE
Pokud je zadaný příkaz ignorován, pokud
table_name
již existuje.-
Název, který chcete vytvořit pro table. Název nesmí obsahovat dočasnou specifikaci ani specifikaci možností. Pokud název není kvalifikovaný, v aktuálním schemase vytvoří table. Table_name již nesmí existovat.
-
Název table, jehož definice se zkopíruje.
source_table_name
itable_name
musí být oba v Hive metastoru, nebo musí oba být na Unity Catalog. table_clauses
Volitelně můžete zadat formát zdroje dat, umístění a vlastnosti definované uživatelem pro nový table. Každou dílčí klauzuli lze zadat pouze jednou.
Cesta k umístění
Cesta k adresáři wheretable, kde jsou data uložena, což může být cesta v distribuovaném úložišti. Pokud zadáte umístění, nový table se stane externím table. Pokud neurčíte umístění, table je spravovaný table.
Nelze vytvořit externí tables na místech, která se překrývají se spravovanými tables.
-
Volitelně nastaví jednu nebo více uživatelem definovaných vlastností.
USING data_source
Formát souboru, který se má použít pro table.
data_source
musí být jedna z těchto možností:TEXT
CSV
JSON
JDBC
PARQUET
DELTA
Databricks Runtime podporují následující další formáty souborů, které se mají použít pro table:
ORC
HIVE
LIBSVM
- plně kvalifikovaný název třídy vlastní implementace
org.apache.spark.sql.sources.DataSourceRegister
.
Pokud nezadáte
USING
, formát zdrojového table bude zděděn.Toto se vztahuje na: Databricks Runtime
HIVE
se podporuje vytvoření table Hive SerDe v Databricks Runtime. Můžete zadat Hive specifickéfile_format
arow_format
použítOPTIONS
klauzuli, což je mapa řetězců bez rozlišování malých a velkých písmen. Jedná se ooption_keys
:FILEFORMAT
INPUTFORMAT
OUTPUTFORMAT
SERDE
FIELDDELIM
ESCAPEDELIM
MAPKEYDELIM
LINEDELIM
FORMÁT ŘÁDKU row_format
Platí pro: Databricks Runtime
Chcete-li zadat vlastní SerDe, přejděte od set do
SERDE
a specifikujte plně kvalifikovaný název třídy vlastní SerDe a povinné či volitelné vlastnosti SerDe. Pokud chcete použít nativní SerDe, spojte set sDELIMITED
a zadejte oddělovač, escape znak, znak null atd.SERDEPROPERTIES
list párů klíč-hodnota sloužících k označení definice SerDe.
POLE UKONČENA UŽIVATELEM
Definujte oddělovač column.
ESCAPED BY
Definujte řídicí mechanismus.
POLOŽKY KOLEKCE UKONČENÉ UŽIVATELEM
Definujte oddělovač položek kolekce.
MAPOVÉ KLÍČE UKONČENÉ POMOCÍ
Definujte oddělovač klíčů mapy.
ŘÁDKY UKONČENÉ UŽIVATELEM
Definujte oddělovač řádků.
HODNOTA NULL DEFINOVANÁ JAKO
Definujte konkrétní hodnotu pro
NULL
.ULOŽENO JAKO
Formát souboru pro table. Dostupné formáty zahrnují
TEXTFILE
, ,SEQUENCEFILE
RCFILE
,ORC
,PARQUET
, aAVRO
. Alternativně můžete zadat vlastní vstupní a výstupní formáty prostřednictvímINPUTFORMAT
aOUTPUTFORMAT
. Pouze formátyTEXTFILE
,SEQUENCEFILE
aRCFILE
lze použít sROW FORMAT SERDE
a pouzeTEXTFILE
sROW FORMAT DELIMITED
.
Notes
V závislosti na zdroji dat a cíli ne všechny vlastnosti tables mohou být přeneseny.
Funkce/vlastnost | Cíl není typu Delta Table | Cíl je Delta Table |
---|---|---|
COMMENT | Ano | Ano |
Columns | Ano | Ano |
Partition columns | Ano | Ano |
Konfigurace | No | Ano |
Table Constraint | Neuvedeno | Ano |
Delta Protocol | Neuvedeno | Ano |
CREATE TABLE LIKE
, když zdroj není Delta Lake Table:
Funkce/vlastnost | Cíl není Delta Table | Target je Delta Table |
---|---|---|
COMMENT | Ano | Ano |
Columns | Ano | Ano |
Partition columns | Ano | Ano |
Konfigurace | Ano | Ano |
Table Constraint | No | Ano |
Delta Protocol | Ne (aktuální výchozí protokol pro danou relaci) | Ano |
Příklady
-- 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';