CREATE TABLE LIKE

Gäller för: markerad ja Databricks SQL markerad ja 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.

  • table_name

    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.

  • source_table_name

    Namnet på den tabell vars definition kopieras. source_table_name och table_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.

    • TBLPROPERTIES

      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-specifik file_format och row_format använda OPTIONS -satsen, som är en skiftlägeskänslig strängkarta. Är option_keys :

      • FILEFORMAT
      • INPUTFORMAT
      • OUTPUTFORMAT
      • SERDE
      • FIELDDELIM
      • ESCAPEDELIM
      • MAPKEYDELIM
      • LINEDELIM
    • RADFORMAT row_format

      Gäller för: markerad ja 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 till DELIMITED 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, , SEQUENCEFILERCFILE, ORC, PARQUEToch AVRO. Du kan också ange egna in- och utdataformat via INPUTFORMAT och OUTPUTFORMAT. Endast format TEXTFILE, SEQUENCEFILEoch RCFILE kan användas med ROW FORMAT SERDE och kan endast TEXTFILE användas med ROW FORMAT DELIMITED.

Kommentar

Beroende på datakällan och målet kan inte alla egenskaper för tabeller överföras.

CREATE TABLE LIKEnä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 LIKEnä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';