CREATE TABLE LIKE

Aplica-se a: Marque Sim Databricks SQL Marque Sim Databricks Runtime

Define uma tabela usando a definição e os metadados de uma tabela ou exibição existente.

Delta Lake suporta CREATE TABLE LIKE Databricks SQL e Databricks Runtime 13.3 LTS e superior. No Databricks Runtime 12.2 LTS e inferior, 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_name já existir.

  • table_name

    O nome da tabela a ser criada. O nome não deve incluir uma especificação temporal. Se o nome não estiver qualificado, a tabela será criada no esquema atual. Uma table_name não pode já existir.

  • source_table_name

    O nome da tabela cuja definição é copiada. source_table_name e table_name ambos devem estar no metastore do Hive ou ambos no Unity Catalog.

  • table_clauses

    Opcionalmente, especifique um formato de fonte de dados, local e propriedades definidas pelo usuário para a nova tabela. Cada subcláusula só pode ser especificada uma vez.

    • Caminho LOCALIZAÇÃO

      Caminho para o diretório onde os dados da tabela sã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á gerenciada.

      Não é possível criar tabelas externas em locais que se sobrepõem ao local de tabelas gerenciadas.

    • TBLPROPERTIES

      Opcionalmente, define uma ou mais propriedades definidas pelo usuário.

    • USANDO data_source

      O formato de arquivo a ser usado para a tabela. data_source deve ser um dos seguintes:

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

      Os seguintes formatos de arquivo adicionais a serem usados para a tabela são suportados no Databricks Runtime:

      • ORC
      • HIVE
      • LIBSVM
      • Um nome de classe totalmente qualificado de uma implementação personalizada do org.apache.spark.sql.sources.DataSourceRegister.

      Se você não especificar USING o formato da tabela de origem será herdada.

      O seguinte se aplica a: Databricks Runtime

      HIVE é suportado para criar uma tabela Hive SerDe no Databricks Runtime. Você pode especificar o Hive-specific file_format e row_format usando a cláusula, que é um mapa de cadeia de caracteres que não diferencia maiúsculas OPTIONS de minúsculas. São eles option_keys :

      • FILEFORMAT
      • INPUTFORMAT
      • OUTPUTFORMAT
      • SERDE
      • FIELDDELIM
      • ESCAPEDELIM
      • MAPKEYDELIM
      • LINEDELIM
    • FORMATO LINHA row_format

      Aplica-se a: Marque Sim Databricks Runtime

      Para especificar um SerDe personalizado, defina e SERDE especifique o nome de classe totalmente qualificado de um SerDe personalizado e propriedades SerDe opcionais. Para usar o SerDe nativo, defina e DELIMITED especifique o delimitador, o caractere de escape, o caractere nulo e assim por diante.

      • 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 arquivo para a tabela. Os formatos disponíveis incluem TEXTFILE, SEQUENCEFILE, RCFILE, ORC, PARQUETe AVRO. Como alternativa, você pode especificar seus próprios formatos de entrada e saída através de INPUTFORMAT e OUTPUTFORMAT. Apenas formatos TEXTFILE, SEQUENCEFILEe RCFILE pode ser usado com ROW FORMAT SERDE e só TEXTFILE pode ser usado com ROW 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 Delta Lake:

Característica/Propriedade O alvo não é uma tabela delta O alvo é uma tabela delta
COMENTAR Sim Sim
Colunas 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 Delta Lake:

Característica/Propriedade O alvo não é uma tabela delta O alvo é uma tabela delta
COMENTAR Sim Sim
Colunas 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';