Link Search Menu Expand Document

INSERT INTO download_external_table

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

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

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

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

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

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

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

При успешном выполнении запроса данные выгружаются в том формате и в тот приемник данных, которые были указаны при создании внешней таблицы выгрузки. Формат данных соответствует описанному в разделе Формат выгрузки данных.

Синтаксис

INSERT INTO [db_name.]ext_table_name SELECT query

Параметры:

  • db_name — имя логической базы данных, из которой выгружаются данные. Параметр опционален, если выбрана логическая БД, используемая по умолчанию;
  • ext_table_name — имя внешней таблицы выгрузки;
  • querySELECT-подзапрос для выбора выгружаемых данных. Если в подзапросе указано ключевое слово DATASOURCE_TYPE с псевдонимом СУБД хранилища, данные выгружаются из этой СУБД, иначе — из СУБД, выбранной для выгрузки в конфигурации системы.

Ограничения

  • Выгружаемые данные должны быть доступны в СУБД хранилища, выбранной для выгрузки.
  • Имена и порядок следования столбцов должны совпадать в SELECT-подзапросе на выгрузку данных и внешней таблице выгрузки.
  • Выгрузка данных, выбранных с использованием агрегатных функций, из ADQM дает некорректные результаты. Ограничение связано с тем, что данные из сегментов кластера ADQM выгружаются параллельно и не объединяются.

Пример

Выгрузка из СУБД, заданной в конфигурации

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

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

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

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

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