CREATE TABLE LIKE

Platí pro:zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano 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.

  • Table_name

    Název tabulky, která se má vytvořit. Název nesmí obsahovat dočasnou specifikaci. Pokud název není kvalifikovaný, vytvoří se tabulka v aktuálním schématu. Table_name již nesmí existovat.

  • source_table_name

    Název tabulky, jejíž definice se zkopíruje. source_table_name a table_name oba 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í, stane se nová tabulka externí tabulkou. Pokud neurčíte umístění, tabulka je spravovaná tabulka.

      V umístěních, která se překrývají s umístěním spravovaných tabulek, nelze vytvořit externí tabulky.

    • TBLPROPERTIES

      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.

      Pokud nezadáte USING formát zdrojové tabulky, zdědí se.

      Toto se vztahuje na: Databricks Runtime

      HIVE podporuje se vytvoření tabulky Hive SerDe v Databricks Runtime. Můžete zadat Hive specifické file_format a row_format použít OPTIONS klauzuli, což je mapa řetězců bez rozlišování malých a velkých písmen. Jedná se o option_keys :

      • FILEFORMAT
      • INPUTFORMAT
      • OUTPUTFORMAT
      • SERDE
      • FIELDDELIM
      • ESCAPEDELIM
      • MAPKEYDELIM
      • LINEDELIM
    • FORMÁT ŘÁDKU row_format

      Platí pro:zaškrtnutí označeného ano Databricks Runtime

      Chcete-li zadat vlastní SerDe, nastavte a SERDE zadejte plně kvalifikovaný název třídy vlastní SerDe a volitelné vlastnosti SerDe. Pokud chcete použít nativní SerDe, nastavte a DELIMITED 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, , RCFILESEQUENCEFILE, ORC, PARQUET, a AVRO. Alternativně můžete zadat vlastní vstupní a výstupní formáty prostřednictvím INPUTFORMAT a OUTPUTFORMAT. Pouze formáty TEXTFILE, SEQUENCEFILEa RCFILE lze použít s ROW FORMAT SERDE a pouze TEXTFILE s ROW FORMAT DELIMITED.

Notes

V závislosti na zdroji dat a cíli nelze přenést všechny vlastnosti tabulek.

CREATE TABLE LIKE pokud zdrojem je tabulka Delta Lake:

Funkce/vlastnost Cíl je tabulka, která není delta. Cíl je tabulka Delta.
COMMENT Ano Yes
Sloupce Ano Yes
Sloupce oddílů Ano Yes
Konfigurace No Ano
Omezení tabulky Neuvedeno Ano
Delta Protocol Neuvedeno Ano

CREATE TABLE LIKEpokud zdrojem není tabulka Delta Lake:

Funkce/vlastnost Cíl je tabulka, která není delta. Cíl je tabulka Delta.
COMMENT Ano Yes
Sloupce Ano Yes
Sloupce oddílů Ano Yes
Konfigurace Ano Yes
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 '/mnt/data_files';

-- Create table like using a data source
> CREATE TABLE Student_Dupli LIKE Student USING CSV LOCATION '/mnt/csv_files';