Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:
SQL do Databricks
Databricks Runtime
Define uma tabela usando a definição e os metadados de uma tabela existente.
O Delta Lake dá suporte a CREATE TABLE LIKE no Databricks SQL e Databricks Runtime 13.3 LTS e versões superiores.
Na versão Databricks Runtime 12.2 LTS ou anteriores, use CREATE TABLE AS.
Sintaxe
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
SE NÃO EXISTIR
Se especificado, ignorará a instrução se o
table_namejá existir.-
O nome da tabela a ser criada. O nome não deve incluir uma especificação temporal ou especificação de opções. Se o nome não for qualificado, a tabela será criada no esquema atual. Um table_name não deve existir ainda.
-
O nome da tabela cuja definição é copiada.
source_table_nameetable_namedevem estar no metastore do Hive ou estar no Catálogo do Unity. table_clauses
Opcionalmente, especifique um formato de fonte de dados, um local e propriedades definidas pelo usuário para a nova tabela. Cada subcláusula só pode ser especificada uma vez.
caminho LOCATION
Um caminho para o diretório onde os dados da tabela estão armazenados, que pode ser um caminho no armazenamento distribuído. Se você especificar um local, a nova tabela se tornará uma tabela externa. Se você não especificar um local, a tabela será uma tabela gerenciada.
Não é possível criar tabelas externas em locais que se sobreponham ao local das tabelas gerenciadas.
-
Opcionalmente, define uma ou mais propriedades definidas pelo usuário.
USANDO fonte_de_dados
O formato de arquivo a ser usado para a tabela.
data_sourcedeve ser um destes:TEXTCSVJSONJDBCPARQUETDELTA
Os seguintes formatos de arquivo adicionais a serem usados para a tabela têm suporte no Databricks Runtime:
ORCHIVELIBSVM- O nome de classe totalmente qualificado de uma implementação de
org.apache.spark.sql.sources.DataSourceRegisterpersonalizada.
Se você não especificar o
USINGformato da tabela de origem, será herdado.O seguinte se aplica ao: Databricks Runtime
HIVEtem suporte para criar uma tabela SerDe do Hive no Databricks Runtime. Você pode especificarfile_formaterow_formatespecíficos do Hive usando a cláusulaOPTIONS, que é um mapa de cadeia de caracteres que não diferencia maiúsculas e minúsculas. Osoption_keyssão:FILEFORMATINPUTFORMATOUTPUTFORMATSERDEFIELDDELIMESCAPEDELIMMAPKEYDELIMLINEDELIM
FORMATO DE LINHA ROW_FORMAT
Aplica-se a:
Databricks RuntimePara especificar um SerDe personalizado, defina como
SERDEe especifique o nome de classe totalmente qualificado de um SerDe personalizado e propriedades de SerDe opcionais. Para usar o SerDe nativo, defina comoDELIMITEDe especifique o delimitador, o caractere de escape, o caractere nulo etc.SERDEPROPERTIES
Uma lista de pares chave-valor usados para marcar a definição de SerDe.
CAMPOS ENCERRADOS POR
Usado para definir um separador de coluna.
ESCAPE POR
Defina o mecanismo de escape.
ITENS DE COLEÇÃO ENCERRADOS POR
Defina um separador de item de coleção.
CHAVES DE MAPA TERMINADAS POR
Defina um separador de chave de mapa.
LINHAS ENCERRADAS POR
Defina um separador de linha.
NULL DEFINIDO COMO
Defina o valor específico para
NULL.ARMAZENADO COMO
O formato de arquivo para a tabela. Os formatos disponíveis incluem
TEXTFILE,SEQUENCEFILE,RCFILE,ORC,PARQUETeAVRO. Como alternativa, você pode especificar seus próprios formatos de entrada e saída por meio deINPUTFORMATeOUTPUTFORMAT. Somente os formatosTEXTFILE,SEQUENCEFILEeRCFILEpodem ser usados comROW FORMAT SERDEe somenteTEXTFILEpodem ser usado comROW FORMAT DELIMITED.
Observações
Dependendo da fonte de dados e do destino, nem todas as propriedades das tabelas podem ser transferidas.
CREATE TABLE LIKE quando a origem é uma tabela do Delta Lake:
| Recurso/Propriedade | O destino é uma tabela não Delta | O destino é uma tabela Delta |
|---|---|---|
| COMENTÁRIO | Sim | Sim |
| Colunas | Sim | Sim |
| Colunas de Partição | Sim | Sim |
| Configuração | No | Sim |
| Restrição de Tabela | Não Aplicável | Sim |
| Protocolo Delta | Não Aplicável | Sim |
CREATE TABLE LIKE quando a origem não é uma tabela do Delta Lake:
| Recurso/Propriedade | O destino é uma tabela não Delta | O destino é uma tabela Delta |
|---|---|---|
| COMENTÁRIO | Sim | Sim |
| Colunas | Sim | Sim |
| Colunas de Partição | Sim | Sim |
| Configuração | Sim | Sim |
| Restrição de Tabela | No | Sim |
| Protocolo Delta | Não (Protocolo Padrão Atual para essa sessão) | Sim |
Exemplos
-- 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';