Dela via


CREATE TABLE LIKE

Gäller för:markerad ja Databricks SQL markerad ja Databricks Runtime

Definierar en table med hjälp av definitionen och metadata för en befintlig table 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 }

Parameters

  • OM INTE FINNS

    Om det anges ignoreras -instruktionen om den table_name redan finns.

  • table_name

    Namnet på table som ska skapas. Namnet får inte innehålla en temporal specifikation eller alternativspecifikation. Om namnet inte är kvalificerat skapas table i schemaför tillfället. En table_name får inte redan finnas.

  • source_table_name

    Namnet på den table vars definition kopieras. source_table_name och table_name måste båda finnas i Hive-metaarkivet, eller båda vara på Unity Catalog.

  • table_clauses

    Du kan också ange datakällans format, plats och användardefinierade egenskaper för den nya table. Varje undersats kan bara anges en gång.

    • PLATSsökväg

      Sökvägen till katalogen där where- ochtable-data lagras, vilket kan vara en sökväg på distribuerad lagring. Om du specificerar en plats blir den nya table en extern table. Om du inte anger någon plats är table en hanterad table.

      Du kan inte skapa externa tables på platser som överlappar med platsen för hanterade objekt tables.

    • TBLPROPERTIES

      Du kan också ange en eller flera användardefinierade egenskaper.

    • ANVÄNDA data_source

      Filformatet som ska användas för table. 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 table 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 kommer formatet för källan table att ärvas.

      Följande gäller för: Databricks Runtime

      HIVE stöds för att skapa en Hive SerDe-table 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

      För att ange en anpassad SerDe, från set till SERDE, och ange det fullständigt kvalificerade klassnamnet för en anpassad SerDe samt valfria SerDe-egenskaper. För att använda den interna SerDe från set till DELIMITED och specificera avgränsare, escape-tecknet, null-tecken och så vidare.

      • SERDEPROPERTIES

        En uppsättning list nyckel/värde-par som används för att tagga SerDe-definitionen.

      • FÄLT SOM AVSLUTATS AV

        Definiera en column avgrä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 table. 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 tables överföras.

CREATE TABLE LIKE när källan är en Delta Lake Table:

Funktion/egenskap Målet är inte Delta (Table) Målet är Delta Table
COMMENT Ja Ja
Columns Ja Ja
Partition columns Ja Ja
Konfiguration Nej Ja
Table Constraint Inte tillämpligt Ja
Deltaprotokoll Inte tillämpligt Ja

CREATE TABLE LIKE när källa inte är en Delta Lake Table:

Funktion/egenskap Målet är icke-Delta Table Målet är en Delta Table
COMMENT Ja Ja
Columns Ja Ja
Partition columns Ja Ja
Konfiguration Ja Ja
Table Constraint 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';