Link Search Menu Expand Document

Выгрузка данных

Система позволяет выгружать актуальные и архивные данные, а также совокупность изменений, выполненных в рамках указанных дельт. Данные можно выгружать из логических таблиц и логических представлений. Выгрузка данных из материализованных представлений недоступна. Возможные способы выбора выгружаемых данных см. в секции FOR SYSTEM_TIME раздела SELECT.

Данные можно выгрузить из СУБД хранилища, выбранной для выгрузки данных в конфигурации системы (см. параметр EDML_DATASOURCE), или любой указанной СУБД хранилища. Если в запросе не указана СУБД для выгрузки, данные выгружаются из СУБД, заданной в конфигурации. Чтобы выгрузить данные из другой СУБД, нужно добавить в запрос ключевое слово DATASOURCE_TYPE с псевдонимом СУБД.

Для выгрузки данных нужен топик Kafka. Если в брокере сообщений Kafka настроено автоматическое создание топиков, то дополнительные действия не требуются. Иначе необходимо создать топик, если он еще не создан. Подробнее о создании топиков см. в документации Kafka:

Чтобы выгрузить данные из логической таблицы или логического представления во внешнюю информационную систему:

  1. Создайте внешнюю таблицу выгрузки, если она еще не создана.
  2. Выполните запрос INSERT INTO download_external_table на выгрузку данных в топик. В запросе нужно указать внешнюю таблицу выгрузки, определяющую параметры выгрузки.
  3. Выгрузите данные из топика во внешнюю информационную систему.

Созданные внешние таблицы выгрузки можно использовать повторно или удалить.

Пример

-- выбор логической базы данных sales в качестве базы данных по умолчанию
USE sales

-- создание внешней таблицы выгрузки sales_ext_download
CREATE DOWNLOAD EXTERNAL TABLE sales_ext_download (
  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_out'
FORMAT 'AVRO'
CHUNK_SIZE 1000

-- запуск выгрузки данных из логической таблицы sales
INSERT INTO sales_ext_download 
SELECT * FROM sales WHERE product_units > 2 FOR SYSTEM_TIME AS OF DELTA_NUM 10

-- создание внешней таблицы выгрузки stores_ext_download
CREATE DOWNLOAD EXTERNAL TABLE sales.stores_ext_download (
id INT NOT NULL,
category VARCHAR(256) NOT NULL,
region VARCHAR(256) NOT NULL,
address VARCHAR(256) NOT NULL,
description VARCHAR(256)
) 
LOCATION  'kafka://$kafka/stores_out'
FORMAT 'AVRO'
CHUNK_SIZE 1000

-- запуск выгрузки данных из логической таблицы stores
INSERT INTO stores_ext_download 
SELECT * FROM stores WHERE region = 'Москва' DATASOURCE_TYPE = 'adqm'