CREATE DOWNLOAD EXTERNAL TABLE

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

Поддерживается в версиях: 7.0 / 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 data_type [ NULL | NOT NULL ]
  [, ... ]
)
LOCATION 'receiver_URI'
FORMAT 'AVRO'
[CHUNK_SIZE records_per_message]

Параметры:

db_name

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

ext_table_name

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

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

column_name

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

data_type

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

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

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

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

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

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

Задает максимальное количество записей, выгружаемых из хранилища в одном сообщении Ка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.