CREATE UPLOAD EXTERNAL TABLE
Запрос позволяет создать внешнюю таблицу загрузки в логической базе данных.
В ответе возвращается:
- пустой объект ResultSet при успешном выполнении запроса;
- исключение при неуспешном выполнении запроса.
После успешного выполнения запроса можно выполнять запросы INSERT INTO logical_table на загрузку данных. Подробнее о порядке выполнения действий для загрузки данных см. в разделе Загрузка данных.
Примечание: изменение внешней таблицы недоступно. Для замены внешней таблицы необходимо удалить ее и создать новую.
Синтаксис
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]
Параметры
db_name
— имя логической базы данных, в которой создается внешняя таблица. Указание опционально, если выбрана логическая БД, используемая по умолчанию;ext_table_name
— имя создаваемой внешней таблицы загрузки. Для удобства различения таблиц выгрузки и таблиц загрузки рекомендуется задавать имя таблицы, указывающее на ее тип, напримерsales_ext_upload
;column_name_N
— имя столбца таблицы;datatype_N
— тип данных столбцаcolumn_name_N
. Возможные значения см. в разделе Логические типы данных;source_URI
— путь к топику Kafka (см. Формат пути к внешнему приемнику данных);messages_per_segment
— максимальное количество сообщений, загружаемых в хранилище в составе одного блока на один поток загрузки. Значение подбирается в зависимости от параметров производительности инфраструктуры.
Пример
CREATE UPLOAD EXTERNAL TABLE sales.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