Выгрузка данных
Система позволяет выгружать актуальные и архивные данные, а также совокупность изменений, выполненных в рамках указанных дельт. Данные можно выгружать из логических таблиц и логических представлений. Выгрузка данных из материализованных представлений недоступна. Возможные способы выбора выгружаемых данных см. в секции FOR SYSTEM_TIME раздела SELECT.
Данные можно выгрузить из СУБД хранилища, выбранной для выгрузки данных в конфигурации системы (см. параметр EDML_DATASOURCE
), или любой указанной СУБД хранилища. Если в запросе не указана СУБД для выгрузки, данные выгружаются из СУБД, заданной в конфигурации. Чтобы выгрузить данные из другой СУБД, нужно добавить в запрос ключевое слово DATASOURCE_TYPE
с псевдонимом СУБД.
Для выгрузки данных нужен топик Kafka. Если в брокере сообщений Kafka настроено автоматическое создание топиков, то дополнительные действия не требуются. Иначе необходимо создать топик, если он еще не создан. Подробнее о создании топиков см. в документации Kafka:
- раздел Quick Start,
- раздел Adding and removing topics.
Чтобы выгрузить данные из логической таблицы или логического представления во внешнюю информационную систему:
- Создайте внешнюю таблицу выгрузки, если она еще не создана.
- Выполните запрос INSERT INTO download_external_table на выгрузку данных в топик. В запросе нужно указать внешнюю таблицу выгрузки, определяющую параметры выгрузки.
- Выгрузите данные из топика во внешнюю информационную систему.
Созданные внешние таблицы выгрузки можно использовать повторно или удалить.
Пример
-- выбор логической базы данных 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'