CREATE TABLE LIKE
Platí pro: Databricks SQL Databricks Runtime
Definuje tabulku pomocí definice a metadat existující tabulky 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 }
Parametry
POKUD NEEXISTUJE
Pokud je zadaný příkaz ignorován, pokud
table_name
již existuje.-
Název tabulky, která se má vytvořit. Název nesmí obsahovat dočasnou specifikaci ani specifikaci možností. Pokud název není kvalifikovaný, vytvoří se tabulka v aktuálním schématu. Table_name již nesmí existovat.
-
Název tabulky, jejíž definice se zkopíruje.
source_table_name
itable_name
musí být v metastoru Hive nebo oba musí být v katalogu Unity. table_clauses
Volitelně můžete zadat formát zdroje dat, umístění a vlastnosti definované uživatelem pro novou tabulku. Každou dílčí klauzuli lze zadat pouze jednou.
Cesta k umístění
Cesta k adresáři, kde jsou uložena data tabulky, což může být cesta v distribuovaném úložišti. Pokud zadáte umístění, nová tabulka se stane externí tabulkou. Pokud nezadáte umístění, tabulka je spravovaná.
V umístěních, která se překrývají s umístěním spravovaných tabulek, nelze vytvořit externí tabulky.
-
Volitelně nastaví jednu nebo více uživatelem definovaných vlastností.
USING data_source
Formát souboru, který se má použít pro tabulku.
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 tabulku:
ORC
HIVE
LIBSVM
- plně kvalifikovaný název třídy vlastní implementace
org.apache.spark.sql.sources.DataSourceRegister
.
Jestliže nezadáte
USING
, zdědí se formát zdrojové tabulky.Toto se vztahuje na: Databricks Runtime
HIVE
podporuje vytváření tabulek 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, nastavte na
SERDE
a zadejte plně kvalifikovaný název třídy vlastní SerDe a volitelné vlastnosti SerDe. Pokud chcete použít nativní SerDe, nastavte naDELIMITED
a zadejte oddělovač, řídicí znak, znak null atd.SERDEPROPERTIES
Seznam párů klíč-hodnota použitých k označení definice SerDe.
POLE UKONČENA UŽIVATELEM
Definujte oddělovač sloupců.
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 tabulky. 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 nelze přenést všechny vlastnosti tabulek.
CREATE TABLE LIKE
, když je zdroj tabulka Delta Lake:
Funkce/vlastnost | Cíl je tabulka, která není delta. | Cíl je tabulka Delta. |
---|---|---|
COMMENT | Ano | Ano |
Sloupce | Ano | Ano |
Sloupce oddílů | Ano | Ano |
Konfigurace | No | Ano |
Omezení tabulky | Neuvedeno | Ano |
Delta Protocol | Neuvedeno | Ano |
CREATE TABLE LIKE
když zdroj není tabulka Delta Lake:
Funkce/vlastnost | Cíl je tabulka, která není delta. | Cíl je tabulka Delta. |
---|---|---|
COMMENT | Ano | Ano |
Sloupce | Ano | Ano |
Sloupce oddílů | Ano | Ano |
Konfigurace | Ano | Ano |
Omezení tabulky | 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';