Экспорт данных в СУБД (в standalone-таблицу)

Содержание раздела
  1. Предварительный шаг перед экспортом
  2. Как экспортировать данные системы в standalone-таблицу
  3. Пример

Система позволяет экспортировать данные системы в таблицы СУБД (standalone-таблицы). Экспорт возможен из любых логических сущностей, поддерживающих SELECT-запросы.

Предварительный шаг перед экспортом

Экспорт данных в standalone-таблицу выполняется с помощью внешней writable-таблицы. Если она отсутствует, ее необходимо создать.

Чтобы создать внешнюю writable-таблицу, выполните запрос CREATE WRITABLE EXTERNAL TABLE:

  • если standalone-таблица отсутствует и ее нужно создать при создании внешней таблицы, укажите в запросе ключевое слово OPTIONS со значением auto.create.table.enable=true;
  • иначе выполните запрос без ключевого слова OPTIONS.

Как экспортировать данные системы в standalone-таблицу

Чтобы экспортировать данные логических сущностей в standalone-таблицу:

  1. Выполните запрос INSERT SELECT, где в качестве источника укажите нужные логические сущности, а в качестве приемника — внешнюю writable-таблицу:
    • чтобы выполнить запрос в синхронном режиме, используйте любой из способов:
      • отправьте запрос по JDBC,
      • отправьте запрос по HTTP с помощью POST-метода query без параметра async или с параметром async, имеющим значение false;
    • чтобы выполнить запрос в асинхронном режиме, отправьте его по HTTP с помощью POST-метода query с параметром async, имеющим значение true.

При вставке данных в standalone-таблицы учитывайте ограничения таблиц целевой СУБД.

Пример

Экспорт данных из логической таблицы в standalone-таблицу:

-- создание внешней writable-таблицы, связанной со standalone-таблицей датасорса adg
CREATE WRITABLE EXTERNAL TABLE marketing.sales_ext_write_adg (
  id BIGINT NOT NULL,
  transaction_date TIMESTAMP NOT NULL,
  product_code VARCHAR(256) NOT NULL,
  product_units BIGINT NOT NULL,
  store_id BIGINT NOT NULL,
  description VARCHAR(256),
  PRIMARY KEY (id)
)
DISTRIBUTED BY (id)
LOCATION 'core:adg://dtm__marketing__sales'
OPTIONS ('auto.create.table.enable=true');

-- вставка данных в standalone-таблицу, на которую указывает внешняя writable-таблица sales_ext_write_adg, из логической таблицы sales
INSERT INTO marketing.sales_ext_write_adg SELECT * FROM marketing.sales DATASOURCE_TYPE = 'adg';