CREATE TABLE LIKE

Si applica a: segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime

Definisce una tabella utilizzando la definizione e i metadati di una tabella o vista esistente.

Delta Lake supporta CREATE TABLE LIKE Databricks SQL e Databricks Runtime 13.3 LTS e versioni successive. In Databricks Runtime 12.2 LTS e versioni successive usare CREATE TABLE AS.

Sintassi

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 }

Parametri

  • SE NON ESISTE

    Se specificato, l'istruzione viene ignorata se l'oggetto table_name esiste già.

  • table_name

    Nome della tabella da creare. Il nome non deve includere una specifica temporale. Se il nome non è qualificato, la tabella viene creata nello schema corrente. Un table_name non deve esistere già.

  • source_table_name

    Nome della tabella la cui definizione viene copiata. source_table_name e table_name devono essere entrambi nel metastore Hive o entrambi nel catalogo unity.

  • table_clauses

    Facoltativamente, specificare un formato di origine dati, un percorso e le proprietà definite dall'utente per la nuova tabella. Ogni clausola secondaria può essere specificata una sola volta.

    • PERCORSO

      Percorso della directory in cui sono archiviati i dati della tabella, che potrebbe essere un percorso nell'archiviazione distribuita. Se si specifica una posizione, la nuova tabella diventa una tabella esterna. Se non si specifica una posizione, la tabella è una tabella gestita.

      Non è possibile creare tabelle esterne in posizioni che si sovrappongono alla posizione delle tabelle gestite.

    • TBLPROPERTIES

      Facoltativamente, imposta una o più proprietà definite dall'utente.

    • USING data_source

      Formato di file da utilizzare per la tabella. data_source deve essere uno dei seguenti:

      • TEXT
      • CSV
      • JSON
      • JDBC
      • PARQUET
      • DELTA

      I formati di file aggiuntivi da usare per la tabella sono supportati in Databricks Runtime:

      • ORC
      • HIVE
      • LIBSVM
      • Nome completo della classe di un'implementazione personalizzata di org.apache.spark.sql.sources.DataSourceRegister.

      Se non si specifica USING il formato della tabella di origine, verrà ereditato.

      Il codice seguente si applica a: Databricks Runtime

      HIVE è supportato per creare una tabella SerDe Hive in Databricks Runtime. È possibile specificare hive-specific file_format e row_format usare la OPTIONS clausola , ovvero una mappa di stringhe senza distinzione tra maiuscole e minuscole. I option_keys sono:

      • FILEFORMAT
      • INPUTFORMAT
      • OUTPUTFORMAT
      • SERDE
      • FIELDDELIM
      • ESCAPEDELIM
      • MAPKEYDELIM
      • LINEDELIM
    • ROW_FORMAT FORMATO RIGA

      Si applica a: segno di spunta sì Databricks Runtime

      Per specificare un SerDe personalizzato, impostare su SERDE e specificare il nome completo di una classe SerDe personalizzata e le proprietà SerDe facoltative. Per usare il serDe nativo, impostare su DELIMITED e specificare il delimitatore, il carattere di escape, il carattere Null e così via.

      • SERDEPROPERTIES

        Elenco di coppie chiave-valore usate per contrassegnare la definizione SerDe.

      • CAMPI TERMINATI DA

        Definire un separatore di colonna.

      • ESCAPE BY

        Definire il meccanismo di escape.

      • ELEMENTI DI RACCOLTA TERMINATI DA

        Definire un separatore di elementi della raccolta.

      • CHIAVI DI MAPPING TERMINATE DA

        Definire un separatore di chiave della mappa.

      • RIGHE TERMINATE DA

        Definire un separatore di riga.

      • NULL DEFINITO COME

        Definire il valore specifico per NULL.

      • ARCHIVIATO COME

        Formato di file per la tabella. I formati disponibili includono TEXTFILE, SEQUENCEFILE, RCFILEORC, PARQUET, e AVRO. In alternativa, è possibile specificare formati di input e output personalizzati tramite INPUTFORMAT e OUTPUTFORMAT. Solo i formati TEXTFILE, SEQUENCEFILEe RCFILE possono essere usati con ROW FORMAT SERDE e possono essere usati solo TEXTFILE con ROW FORMAT DELIMITED.

Note

A seconda dell'origine dati e della destinazione, non tutte le proprietà delle tabelle possono essere trasferite.

CREATE TABLE LIKEquando l'origine è una tabella Delta Lake:

Feature/Property Target è una tabella non delta Target è una tabella delta
COMMENT
Colonne
Colonne di partizione
Impostazione No
Vincolo table Non applicabile
Protocollo Delta Non applicabile

CREATE TABLE LIKEquando l'origine non è una tabella Delta Lake:

Feature/Property Target è una tabella non delta Target è una tabella delta
COMMENT
Colonne
Colonne di partizione
Impostazione
Vincolo table No
Protocollo Delta No (protocollo predefinito corrente per la sessione)

Esempi

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