Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:
Databricks SQL
Databricks Runtime
Define uma tabela usando a definição e os metadados de uma tabela existente.
Delta Lake suporta CREATE TABLE LIKE Databricks SQL e Databricks Runtime 13.3 LTS e superior.
No Databricks Runtime 12.2 LTS e versões 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 ignora a instrução se o
table_namejá existir.-
O nome da tabela a criar. O nome não deve incluir uma especificação temporal ou uma especificação de opções. Se o nome não estiver qualificado, a tabela será criada no esquema atual. Uma table_name não pode já existir.
-
O nome da tabela cuja definição é copiada.
source_table_nameetable_nameambos devem estar na Metastore Hive, ou ambos no Unity Catalog. table_clauses
Opcionalmente, especifique um formato de fonte de dados, localização e propriedades definidas pelo utilizador para a nova tabela. Cada subcláusula só pode ser especificada uma vez.
Caminho LOCALIZAÇÃO
Caminho para o diretório onde os dados das tabelas são armazenados, que pode ser um caminho no armazenamento distribuído. Se especificar uma localização, a nova tabela torna-se uma tabela externa. Se não especificar uma localização, a tabela é uma tabela gerida.
Não se podem criar tabelas externas em locais que se sobreponham à localização das tabelas geridas.
-
Opcionalmente, define uma ou mais propriedades definidas pelo usuário.
USANDO data_source
O formato de ficheiro a usar para a tabela.
data_sourcedeve ser um dos seguintes:TEXTCSVJSONJDBCPARQUETDELTA
Os seguintes formatos de arquivo adicionais a serem usados para a tabela são suportados no Databricks Runtime:
ORCHIVELIBSVM- Um nome de classe totalmente qualificado de uma implementação personalizada do
org.apache.spark.sql.sources.DataSourceRegister.
Se não especificar
USING, o formato da tabela de origem será herdado.O seguinte se aplica a: Databricks Runtime
HIVEé suportado para criar uma tabela Hive SerDe no Databricks Runtime. Você pode especificar o Hive-specificfile_formaterow_formatusando a cláusula, que é um mapa de cadeia de caracteres que não diferencia maiúsculasOPTIONSde minúsculas. São elesoption_keys:FILEFORMATINPUTFORMATOUTPUTFORMATSERDEFIELDDELIMESCAPEDELIMMAPKEYDELIMLINEDELIM
FORMATO LINHA row_format
Aplica-se a:
Databricks RuntimePara especificar um SerDe personalizado, defina para
SERDEe especifique o nome de classe totalmente qualificado desse SerDe, juntamente com as suas propriedades opcionais. Para usar o SerDe nativo, definaDELIMITEDpara e especifique o delimitador, o caracter de escape, o caracter nulo, etc.SERDEPROPRIEDADES
Uma lista de pares-chave-valor usados para marcar a definição SerDe.
CAMPOS TERMINADOS POR
Defina um separador de coluna.
ESCAPOU 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 TERMINADAS POR
Defina um separador de linha.
NULL DEFINIDO COMO
Defina o valor específico para
NULL.ARMAZENADO COMO
O formato de ficheiro 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 através deINPUTFORMATeOUTPUTFORMAT. Apenas formatosTEXTFILE,SEQUENCEFILEeRCFILEpode ser usado comROW FORMAT SERDEe sóTEXTFILEpode ser usado comROW FORMAT DELIMITED.
Notas
Dependendo da fonte de dados e do destino, nem todas as propriedades das tabelas podem ser transferidas.
CREATE TABLE LIKE quando a fonte é uma Tabela do Lago Delta:
| Característica/Propriedade | O alvo é uma tabela não-Delta | O alvo é uma Tabela Delta |
|---|---|---|
| COMENTAR | Sim | Sim |
| Columns | Sim | Sim |
| Colunas de partição | Sim | Sim |
| Configuração | Não | Sim |
| Restrição de tabela | Não Aplicável | Sim |
| Protocolo Delta | Não Aplicável | Sim |
CREATE TABLE LIKE quando a fonte não é uma Tabela do Lago Delta:
| Característica/Propriedade | O alvo é uma tabela não-Delta | O alvo é uma Tabela Delta |
|---|---|---|
| COMENTAR | Sim | Sim |
| Columns | Sim | Sim |
| Colunas de partição | Sim | Sim |
| Configuração | Sim | Sim |
| Restrição de tabela | Não | 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';