Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Вы находитесь на странице архива. Актуальная документация доступна по ссылке.

INSERT INTO download_external_table

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

Поддерживается в версиях:  6.1 / 6.0 / 5.8 / 5.7 / 5.6.1 / 5.5 / 5.4 / 5.3 / 5.2 / 5.1 / 5.0.

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

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

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

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

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

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

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

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

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

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

По умолчанию система ведет статистику обработки запросов к данным. Запросы INSERT INTO download_external_table учитываются в категории DOWNLOAD.
Чтобы получить статистику, выполните GET_ENTITY_STATISTICS.

Синтаксис

INSERT INTO [db_name.]ext_table_name SELECT query

Параметры:

db_name

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

ext_table_name

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

query

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

Ключевое слово SELECT

Ключевое слово SELECT задает 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 BIGINT NOT NULL,
  agreement_id BIGINT,
  code VARCHAR(16),
  amount DOUBLE,
  currency_code VARCHAR(3),
  description VARCHAR
)
LOCATION 'kafka://$kafka/payments_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;