Sdílet prostřednictvím


CREATE TABLE LIKE

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

  • table_name

    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.

  • source_table_name

    Název table, jehož definice se zkopíruje. source_table_name i table_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.

    • TBLPROPERTIES

      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 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, 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 s DELIMITED 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, , SEQUENCEFILERCFILE, 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 ne všechny vlastnosti tables mohou být přeneseny.

, když je zdrojovým Delta Lake :

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';