INSERT INTO download_external_table
Содержание раздела
Запрос позволяет выгрузить данные, выбранные SELECT-подзапросом к логической базе данных, во внешний приемник данных. Данные можно выгружать из логических таблиц, логических и материализованных представлений. Запрос обрабатывается в порядке, описанном в разделе Порядок обработки запросов на выгрузку данных.
Для получения небольшого объема данных можно использовать запрос данных.
Перед выполнением запроса необходимо создать внешнюю таблицу с указанием пути к внешнему приемнику данных. Подробнее о порядке выполнения действий для выгрузки данных см. в разделе Выгрузка данных.
В запросе можно указать СУБД хранилища для выгрузки данных. Если СУБД не указана, система определяет СУБД, оптимальную для выгрузки, в зависимости от параметров запроса, месторасположения данных и конфигурации системы.
В ответе возвращается:
- пустой объект ResultSet при успешном выполнении запроса;
- исключение при неуспешном выполнении запроса.
При успешном выполнении запроса данные выгружаются в том формате и в тот приемник данных, которые были указаны при создании внешней таблицы выгрузки. Формат данных соответствует описанному в разделе Формат выгрузки данных.
Синтаксис
INSERT INTO [db_name.]ext_table_name SELECT query
Параметры:
db_name
— имя логической базы данных, из которой выгружаются данные. Параметр опционален, если выбрана логическая БД, используемая по умолчанию;ext_table_name
— имя внешней таблицы выгрузки;query
— SELECT-подзапрос для выбора выгружаемых данных. Если в подзапросе указано ключевое слово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'