Link Search Menu Expand Document

INSERT INTO download_external_table

Содержание раздела
  1. Синтаксис
  2. Ограничения
  3. Примеры
    1. Выгрузка из наиболее оптимальной СУБД
    2. Выгрузка из указанной СУБД
    3. Выгрузка из материализованного представления
    4. Выгрузка из standalone-таблицы

Запрос выгружает данные из логической базы данных в топик Kafka, указанный при создании внешней таблицы выгрузки (download_external_table). Формат выгрузки описан в разделе Формат выгрузки данных.

Данные можно выгружать из следующих сущностей и их соединений:

Синтаксис выгрузки из standalone-таблицы подразумевает использование внешней readable-таблицы, которая указывает на нужную standalone-таблицу.

Для получения небольшого объема данных можно использовать запрос данных.

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

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

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

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

Данные выгружаются из следующей СУБД хранилища:

  • указанной в запросе или наиболее оптимальной — если данные выгружаются из логических таблиц, логических и материализованных представлений;
  • содержащей standalone-таблицу — если данные выгружаются из standalone-таблицы или ее соединений с другими сущностями.

Синтаксис

INSERT INTO [db_name.]ext_table_name SELECT query

Параметры:

db_name

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

ext_table_name

Имя внешней таблицы выгрузки.

query

SELECT-подзапрос для выбора выгружаемых данных.

Ограничения

Имена и порядок следования столбцов должны совпадать в SELECT-подзапросе на выгрузку данных и внешней таблице выгрузки.

Примеры

Выгрузка из наиболее оптимальной СУБД

INSERT INTO marketing.sales_ext_download
SELECT * FROM marketing.sales WHERE product_units > 2

Выгрузка из указанной СУБД

INSERT INTO marketing.sales_ext_download 
SELECT * FROM marketing.sales WHERE description = 'Покупка по акции 1+1' DATASOURCE_TYPE = 'adqm'

Выгрузка из материализованного представления

INSERT INTO marketing.sales_by_stores_ext_download
SELECT * FROM marketing.sales_by_stores WHERE product_code IN ('ABC0002', 'ABC0003', 'ABC0004') DATASOURCE_TYPE = 'adqm'

Выгрузка из standalone-таблицы

-- создание внешней таблицы выгрузки
CREATE DOWNLOAD EXTERNAL TABLE marketing.payments_ext_download (
  id INT NOT NULL,
  agreement_id INT,
  code VARCHAR(16),
  amount DOUBLE,
  currency_code VARCHAR(3),
  description VARCHAR
)
LOCATION 'kafka://$kafka/agreements_out'
FORMAT 'AVRO'
CHUNK_SIZE 1000;

-- выгрузка данных из standalone-таблицы, на которую указывает внешняя readable-таблица payments_ext_read_adg
INSERT INTO marketing.payments_ext_download
SELECT s.id, s.agreement_id, s.code, s.amount, s.currency_code, s.description 
FROM marketing.payments_ext_read_adg AS s 
WHERE code = 'MONTH_FEE' AND agreement_id BETWEEN 100 AND 150;