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 должно быть уникальным.
-
Имя таблицы, определение которой копируется.
source_table_name
иtable_name
должны находиться в хранилище метаданных Hive или в каталоге Unity. table_clauses
Необязательный параметр, позволяющий указать формат источника данных, расположение и определяемые пользователем свойства для новой таблицы. Каждое вложенное предложение может быть указано только один раз.
LOCATION path
Путь к каталогу, в котором хранятся данные таблиц, что может быть путем к распределенному хранилищу. Если указать расположение, новая таблица становится внешней таблицей. Если расположение не указано, таблица является управляемой таблицей.
Нельзя создавать внешние таблицы в расположениях, перекрывающихся расположением управляемых таблиц.
-
При необходимости задает одно или несколько свойств, определяемых пользователем.
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';