Link Search Menu Expand Document

INSERT INTO logical_table

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

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

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

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

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

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

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

Примечания

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

Синтаксис

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

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 — список имен столбцов внешней таблицы загрузки. Должен включать все имена столбцов логической таблицы. Если внешняя таблица содержит служебное поле sys_op, оно не указывается;
  • ext_table_name — имя внешней таблицы загрузки.

Ограничения

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

Пример

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

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

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

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