CREATE TABLE LIKE

Se aplica a:casilla marcada como Sí Databricks SQL casilla marcada como Sí Databricks Runtime

Define una tabla mediante la definición y los metadatos de una tabla o una vista existentes.

Delta Lake admite CREATE TABLE LIKE en Databricks SQL y Databricks Runtime 13.3 LTS y versiones posteriores. En Databricks Runtime 12.2 LTS y versiones posteriores, use CREATE TABLE AS.

Sintaxis

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 }

Parámetros

  • IF NOT EXISTS

    Si se especifica, omite la instrucción si table_name ya existe.

  • table_name

    El objeto de la tabla que se va a crear. El nombre no debe incluir una especificación temporal. Si el nombre no está completo, la tabla se crea en el esquema actual. table_name no debe existir todavía.

  • source_table_name

    Nombre de la tabla cuya definición se copia. source_table_name y table_name deben estar en metastore de Hive, o ambos deben estar en Unity Catalog.

  • table_clauses

    Opcionalmente, especifique un formato de origen de datos, una ubicación y propiedades definidas por el usuario para la nueva tabla. Cada subcláusula solo se puede especificar una vez.

    • LOCATION path

      Ruta de acceso al directorio donde se almacenan los datos de tabla, que podría ser una ruta de acceso en el almacenamiento distribuido. Si especifica una ubicación, la nueva tabla se convierte en una tabla externa. Si no especifica una ubicación, la tabla es una tabla administrada.

      No se pueden crear tablas externas en ubicaciones que se superpongan con la ubicación de las tablas administradas.

    • TBLPROPERTIES

      Este parámetro opcional le permite establecer una o más propiedades que defina el usuario.

    • USING data_source

      Formato de archivo que se va a usar para la tabla. data_source debe ser uno de los siguientes:

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

      Los siguientes formatos de archivo adicionales que se usarán para la tabla se admiten en Databricks Runtime:

      • ORC
      • HIVE
      • LIBSVM
      • El nombre de clase completo de una implementación de org.apache.spark.sql.sources.DataSourceRegister personalizada.

      Si no especifica USING, el formato de la tabla de origen se hereda.

      Lo siguiente se aplica a: Databricks Runtime

      HIVE se admite para crear una tabla de Hive SerDe en Databricks Runtime. Puede especificar el file_format y row_format específico de Hive mediante la cláusula OPTIONS, que es un mapa de cadenas que no distingue entre mayúsculas y minúsculas. option_keys son:

      • FILEFORMAT
      • INPUTFORMAT
      • OUTPUTFORMAT
      • SERDE
      • FIELDDELIM
      • ESCAPEDELIM
      • MAPKEYDELIM
      • LINEDELIM
    • ROW FORMAT row_format

      Se aplica a:casilla marcada como Sí Databricks Runtime

      Para especificar un SerDe personalizado, establezca SERDE y especifique el nombre de clase completo de un SerDe personalizado y propiedades SerDe opcionales. Para usar el SerDe nativo, establezca DELIMITED y especifique el delimitador, el carácter de escape, el carácter nulo, y así sucesivamente.

      • SERDEPROPERTIES

        Lista de pares clave-valor usados para etiquetar la definición de SerDe.

      • FIELDS TERMINATED BY

        Define un separador de columnas.

      • ESCAPED BY

        Define el mecanismo de escape.

      • COLLECTION ITEMS TERMINATED BY

        Define un separador de elemento de recopilación.

      • MAP KEYS TERMINATED BY

        Define un separador de claves de mapa.

      • LINES TERMINATED BY

        Define un separador de filas.

      • NULL DEFINED AS

        Define el valor específico de NULL.

      • STORED AS

        Formato de archivo de la tabla. Entre los formatos disponibles se incluyen TEXTFILE, SEQUENCEFILE, RCFILE, ORC, PARQUET y AVRO. Como alternativa, puede especificar sus propios formatos de entrada y salida mediante INPUTFORMAT y OUTPUTFORMAT. Solo los formatos TEXTFILE, SEQUENCEFILE y RCFILE se pueden usar con ROW FORMAT SERDE y solo TEXTFILE se puede usar con ROW FORMAT DELIMITED.

Notas

Según el origen de datos y el destino no todas las propiedades de las tablas se pueden transferir.

CREATE TABLE LIKE cuando el origen es una tabla de Delta Lake:

Característica/Propiedad El destino es una tabla no Delta El destino es una tabla Delta
COMMENT
Columnas
Columnas de partición
Configuración No
restricción de tabla No aplicable
Protocolo Delta No aplicable

CREATE TABLE LIKE cuando el origen no es una tabla de Delta Lake:

Característica/Propiedad El destino es una tabla no Delta El destino es una tabla Delta
COMMENT
Columnas
Columnas de partición
Configuración
restricción de tabla No
Protocolo Delta No (protocolo predeterminado actual para esa sesión)

Ejemplos

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