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


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, задайте значение SERDE и укажите полное имя класса пользовательского SerDe, а также необязательные свойства SerDe. Чтобы использовать собственный SerDe, установите значение DELIMITED и укажите разделитель, символ экранирования, символ null, и так далее.

      • SERDEPROPERTIES

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

      • 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. С TEXTFILE можно использовать только форматы SEQUENCEFILE, RCFILE и ROW FORMAT SERDE, а с TEXTFILE — только формат ROW FORMAT DELIMITED.

Примечания.

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

, если источника является таблицей Delta Lake:

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

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

Функция или свойство Целевой объект — не таблица Delta Назначение — таблица Delta
КОММЕНТАРИЙ Да Да
Столбцы Да Да
Столбцы секционирования Да Да
Настройка Да Да
Ограничение таблицы 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';