CREATE DOWNLOAD EXTERNAL TABLE

Содержание раздела
  1. Синтаксис
    1. Ключевое слово IF NOT EXISTS
    2. Ключевое слово LOCATION
    3. Ключевое слово FORMAT
    4. Ключевое слово CHUNK_SIZE
  2. Варианты ответа
  3. Ограничения
  4. Пример
    1. Таблица для выгрузки данных из логической таблицы
    2. Таблица для выгрузки данных из standalone-таблицы

Поддерживается в версиях:  6.12 / 6.11 / 6.10 / 6.9 / 6.8 / 6.7 / 6.6 / 6.5 / 6.4 / 6.3 / 6.2 / 6.1 / 6.0 / 5.8 / 5.7 / 5.6 / 5.5 / 5.4 / 5.3 / 5.2 / 5.1 / 5.0.

Запрос создает внешнюю таблицу выгрузки в логической базе данных.

После успешного выполнения запроса можно выполнять запросы INSERT INTO download_external_table на выгрузку данных. Подробнее о порядке выполнения действий для выгрузки данных см. в разделе Выгрузка данных.

Изменение внешней таблицы недоступно. Чтобы заменить внешнюю таблицу, удалите ее и создайте новую.

Синтаксис

CREATE DOWNLOAD EXTERNAL TABLE [IF NOT EXISTS] [db_name.]ext_table_name(
  column_name_1 datatype_1,
  column_name_2 datatype_2,
  column_name_3 datatype_3
)
LOCATION receiver_URI
FORMAT 'AVRO'
[CHUNK_SIZE records_per_message]

Параметры:

db_name

Имя логической базы данных, в которой создается внешняя таблица. Опционально, если выбрана логическая БД, используемая по умолчанию.

ext_table_name

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

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

column_name_N

Имя столбца таблицы. Должно удовлетворять условиям, перечисленным в секции Ограничения.

datatype_N

Тип данных столбца column_name_N. Возможные значения см. в разделе Логические типы данных.

receiver_URI

Путь к топику Kafka (см. Формат пути к топику Kafka).

records_per_message

Максимальное количество записей, выгружаемых из хранилища в одном сообщении топика Каfka.

Ключевое слово IF NOT EXISTS

Ключевое слово IF NOT EXISTS включает проверку наличия внешней таблицы до попытки создания. Если ключевое слово указано в запросе, успешный ответ возвращается при наличии или успешном создании внешней таблицы, иначе — только при успешном создании внешней таблицы.

Ключевое слово LOCATION

Ключевое слово LOCATION задает путь к топику Kafka, который будет приемником выгружаемых данных.

Ключевое слово FORMAT

Ключевое слово FORMAT задает формат выгрузки данных. Возможное значение — 'AVRO'.

Ключевое слово CHUNK_SIZE

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

Варианты ответа

В ответе возвращается:

  • пустой объект ResultSet при успешном выполнении запроса;
  • исключение при неуспешном выполнении запроса.

Ограничения

  • Имена таблицы и ее столбцов должны соответствовать требованиям, описанным в разделе Соглашения об именах.

Пример

Таблица для выгрузки данных из логической таблицы

CREATE DOWNLOAD EXTERNAL TABLE marketing.sales_ext_download (
  id BIGINT,
  transaction_date TIMESTAMP,
  product_code VARCHAR(256),
  product_units BIGINT,
  store_id BIGINT,
  description VARCHAR(256)
)
LOCATION 'kafka_brokers://10.129.0.22:9092,10.129.0.123:9092/sales_out'
FORMAT 'AVRO'
CHUNK_SIZE 1000

Путь к топику Kafka в примере указан с использованием брокеров Kafka. Подробнее обо всех способах указания пути к топику см. в разделе Выгрузка данных в Kafka > Формат пути к топику Kafka.

Таблица для выгрузки данных из standalone-таблицы

CREATE DOWNLOAD EXTERNAL TABLE marketing.payments_ext_download (
  id BIGINT NOT NULL,
  agreement_id BIGINT,
  code VARCHAR(16),
  amount DOUBLE,
  currency_code VARCHAR(3),
  description VARCHAR
)
LOCATION 'kafka://$kafka/payments_out'
FORMAT 'AVRO'
CHUNK_SIZE 1000

Путь к топику Kafka в примере указан с использованием переменной. Подробнее обо всех способах указания пути к топику см. в разделе Загрузка данных из Kafka > Формат пути к топику Kafka.