Link Search Menu Expand Document

INSERT INTO logical_table

Содержание раздела
  1. Синтаксис
  2. Ограничения
  3. Пример

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

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

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

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

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

При успешном выполнении запроса данные загружаются в СУБД хранилища, выбранные для размещения данных таблицы. Месторасположение данных таблицы можно задавать запросами CREATE TABLE и DROP TABLE.

Загрузка данных возможна только в логическую таблицу. Загрузка данных в логические и материализованные представления недоступна.

Синтаксис

Запрос с явным перечислением столбцов внешней таблицы:

INSERT INTO [db_name.]table_name SELECT column_list FROM [db_name.]ext_table_name

Запрос с использованием символа *:

INSERT INTO [db_name.]table_name SELECT * FROM [db_name.]ext_table_name

Параметры:

  • db_name — имя логической базы данных. Опционально, если выбрана логическая БД, используемая по умолчанию;
  • table_name — имя логической таблицы, в которую загружаются данные;
  • column_list — список имен всех столбцов внешней таблицы загрузки. Имена и порядок следования указанных столбцов должны совпадать с именами и порядком следования столбцов (полей) в логической таблице, куда загружаются данные, и топике Kafka, из которого загружаются данные;
  • ext_table_name — имя внешней таблицы загрузки.

В загружаемых сообщениях топика Kafka последним полем обязательно указывается служебное поле sys_op. Соответствующий столбец sys_op отсутствует в логической таблице и внешней таблице загрузки, однако имена и порядок всех остальных столбцов (полей) должны совпадать во всех трех объектах: в сообщении, логической и внешней таблицах (см. раздел Формат загрузки данных).

Ограничения

Выполнение запроса возможно только при наличии открытой дельты (см. BEGIN DELTA).

Пример

Пример загрузки данных с открытием и закрытием дельты:

-- выбор логической базы данных marketing в качестве БД по умолчанию
USE marketing;

-- открытие новой (горячей) дельты
BEGIN DELTA;

-- запуск загрузки данных в логическую таблицу sales
INSERT INTO sales SELECT * FROM sales_ext_upload;

-- закрытие дельты (фиксация изменений)
COMMIT DELTA;