Поделиться через


CREATE TABLE LIKE

Область применения: флажок Databricks SQL флажок Databricks Runtime

Определяет параметры создаваемой таблицы, используя определение и метаданные существующей таблицы или представления.

Delta Lake поддерживает CREATE TABLE LIKE в Databricks SQL и Databricks Runtime 13.3 LTS и более поздних версиях. В Databricks Runtime 12.2 LTS и ниже используйте CREATE TABLE AS.

Синтаксис

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 }

Параметры

  • IF NOT EXISTS

    Если параметр задан и table_name уже существует, инструкция игнорируется.

  • table_name

    Имя создаваемой таблицы. Имя не должно включать темпоральную спецификацию или спецификацию параметров. Если имя не указано полностью, таблица создается в текущей схеме. Значение table_name должно быть уникальным.

  • source_table_name

    Имя таблицы, определение которой копируется. source_table_name и table_name должны находиться в хранилище метаданных Hive или в каталоге Unity.

  • table_clauses

    Необязательный параметр, позволяющий указать формат источника данных, расположение и определяемые пользователем свойства для новой таблицы. Каждое вложенное предложение может быть указано только один раз.

    • LOCATION path

      Путь к каталогу, в котором хранятся данные таблиц, что может быть путем к распределенному хранилищу. Если указать расположение, новая таблица становится внешней таблицей. Если расположение не указано, таблица является управляемой таблицей.

      Нельзя создавать внешние таблицы в расположениях, перекрывающихся расположением управляемых таблиц.

    • TBLPROPERTIES

      При необходимости задает одно или несколько свойств, определяемых пользователем.

    • USING data_source

      Формат файла, используемый для таблицы. data_source должно иметь одно из следующих значений:

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

      В Databricks Runtime поддерживаются следующие дополнительные форматы файлов для таблицы:

      • ORC
      • HIVE
      • LIBSVM
      • Полное имя класса пользовательской реализации org.apache.spark.sql.sources.DataSourceRegister.

      Если не указать USING, будет унаследован формат исходной таблицы.

      Ниже приведено следующее: Databricks Runtime

      HIVE поддерживается для создания таблицы Hive SerDe в Databricks Runtime. Можно указать параметры file_format и row_format для Hive, используя для этого предложение OPTIONS. Оно представляет собой сопоставление в виде строки без учета регистра. option_keys являются:

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

      Область применения: флажок Databricks Runtime

      Чтобы задать пользовательские свойства сериализации-десериализации, укажите параметр SERDE и полное имя класса, а также пользовательские и необязательные свойства для сериализации-десериализации. Чтобы использовать собственные свойства сериализации-десериализации, укажите параметр DELIMITED, а также разделитель, escape-символ, символ NULL и т. д.

      • SERDEPROPERTIES

        Список пар "ключ-значение", используемых для добавления тега в определение сериализации-десериализации.

      • FIELDS TERMINATED BY

        Определяет разделитель столбцов.

      • ESCAPED BY

        Определяет механизм экранирования.

      • COLLECTION ITEMS TERMINATED BY

        Определяет разделитель элементов сбора.

      • MAP KEYS TERMINATED BY

        Определяет разделитель ключей сопоставления.

      • LINES TERMINATED BY

        Определяет разделитель строк.

      • NULL DEFINED AS

        Определяет конкретное значение для NULL.

      • STORED AS

        Формат файла для таблицы. Доступные форматы: TEXTFILE, SEQUENCEFILE, RCFILE, ORC, PARQUET и AVRO. Кроме того, можно указать собственные форматы входных и выходных данных с помощью INPUTFORMAT и OUTPUTFORMAT. С ROW FORMAT SERDE можно использовать только форматы TEXTFILE, SEQUENCEFILE и RCFILE, а с ROW FORMAT DELIMITED — только формат TEXTFILE.

Примечания.

В зависимости от источника данных и целевых не всех свойств таблиц может быть передано.

CREATE TABLE LIKEЕсли источник является таблицей Delta Lake:

Функция или свойство Целевой объект — не разностная таблица Цель — это разностная таблица
КОММЕНТАРИЙ Да Да
Столбцы Да Да
Столбцы секционирования Да Да
Настройка No Да
Ограничение таблицы Н/Д Да
Разностный протокол Н/Д Да

CREATE TABLE LIKEЕсли источник не является таблицей Delta Lake:

Функция или свойство Целевой объект — не разностная таблица Цель — это разностная таблица
КОММЕНТАРИЙ Да Да
Столбцы Да Да
Столбцы секционирования Да Да
Настройка Да Да
Ограничение таблицы No Да
Разностный протокол Нет (текущий протокол по умолчанию для этого сеанса) Да

Примеры

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