CREATE TABLE LIKE
Se aplica a: Databricks SQL 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.-
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.
-
Nombre de la tabla cuya definición se copia.
source_table_name
ytable_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.
-
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 elfile_format
yrow_format
específico de Hive mediante la cláusulaOPTIONS
, 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: 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, establezcaDELIMITED
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
yAVRO
. Como alternativa, puede especificar sus propios formatos de entrada y salida medianteINPUTFORMAT
yOUTPUTFORMAT
. Solo los formatosTEXTFILE
,SEQUENCEFILE
yRCFILE
se pueden usar conROW FORMAT SERDE
y soloTEXTFILE
se puede usar conROW 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 | Sí | Sí |
Columnas | Sí | Sí |
Columnas de partición | Sí | Sí |
Configuración | No | Sí |
restricción de tabla | No aplicable | Sí |
Protocolo Delta | No aplicable | Sí |
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 | Sí | Sí |
Columnas | Sí | Sí |
Columnas de partición | Sí | Sí |
Configuración | Sí | Sí |
restricción de tabla | No | Sí |
Protocolo Delta | No (protocolo predeterminado actual para esa sesión) | Sí |
Ejemplos
-- 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';