CREATE UPLOAD EXTERNAL TABLE
Содержание раздела
Запрос позволяет создать внешнюю таблицу загрузки в логической базе данных.
По умолчанию создается таблица, которая предназначена для загрузки данных в логическую таблицу и содержит скрытое служебное поле sys_op
. Если загружаемые данные не содержат поле sys_op
(например, они предназначены для standalone-таблицы), нужно указать в запросе ключевое слово OPTIONS
со значением auto.create.sys_op.enable=false
.
В ответе возвращается:
- пустой объект ResultSet при успешном выполнении запроса;
- исключение при неуспешном выполнении запроса.
После успешного выполнения запроса можно выполнять запросы на загрузку данных. Подробнее о действиях по загрузке данных см. в разделе Загрузка данных.
Изменение внешней таблицы недоступно. Для замены внешней таблицы необходимо удалить ее и создать новую.
Синтаксис
CREATE UPLOAD EXTERNAL TABLE [db_name.]ext_table_name (
column_name_1 datatype_1,
column_name_2 datatype_2,
column_name_3 datatype_3
)
LOCATION source_URI
FORMAT 'AVRO'
[MESSAGE_LIMIT messages_per_segment]
[OPTIONS 'option_list')]
Параметры:
db_name
-
Имя логической базы данных, в которой создается внешняя таблица. Опционально, если выбрана логическая БД, используемая по умолчанию.
ext_table_name
-
Имя создаваемой внешней таблицы. Должно быть уникально среди всех логических сущностей логической БД, а также должно удовлетворять другим условиям, перечисленным в секции Ограничения. Чтобы можно было различать разные типы внешних таблиц между собой, рекомендуется давать им имена, указывающие на тип таблицы, например
sales_ext_upload
. column_name_N
-
Имя столбца таблицы. Должно удовлетворять условиям, перечисленным в секции Ограничения.
datatype_N
-
Тип данных столбца
column_name_N
. Возможные значения см. в разделе Логические типы данных. source_URI
-
Путь к топику Kafka (см. Формат пути к топику Kafka).
messages_per_segment
-
Максимальное количество сообщений, загружаемых в хранилище в составе одного блока на один поток загрузки. Значение подбирается в зависимости от параметров производительности инфраструктуры.
option_list
-
Список дополнительных параметров и их значений в формате
option1=value1;option2=value2...
. Возможные параметры:auto.create.sys_op.enable
— признак добавления скрытого служебного поляsys_op
во внешнюю таблицу, возможные значения:true
(по умолчанию) — добавить поле и использовать таблицу для загрузки данных в логическую таблицу,false
— не добавлять поле и использовать таблицу для загрузки данных в standalone-таблицу.
Ограничения
- Выполнение запроса недоступно в сервисной базе данных
INFORMATION_SCHEMA
. - Имена таблицы и ее столбцов должны начинаться с латинской буквы, после первого символа могут следовать латинские буквы, цифры и символы подчеркивания в любом порядке.
- Таблица и ее столбцы не могут иметь имена, перечисленные в разделе Зарезервированные слова.
Примеры
Таблица для загрузки в логическую таблицу
CREATE UPLOAD EXTERNAL TABLE marketing.sales_ext_upload (
id INT,
transaction_date TIMESTAMP,
product_code VARCHAR(256),
product_units INT,
store_id INT,
description VARCHAR(256)
)
LOCATION 'kafka://zk1:2181,zk2:2181,zk3:2181/sales'
FORMAT 'AVRO'
MESSAGE_LIMIT 1000
Таблица для загрузки в standalone-таблицу
CREATE UPLOAD EXTERNAL TABLE marketing.payments_ext_upload (
id INT NOT NULL,
agreement_id INT,
code VARCHAR(16),
amount DOUBLE,
currency_code VARCHAR(3),
description VARCHAR
)
LOCATION 'kafka://$kafka/payments'
FORMAT 'AVRO'
OPTIONS ('auto.create.sys_op.enable=false')