Порядок обработки запросов на загрузку данных

Запрос на загрузку данных обрабатывается в следующем порядке:

  1. Внешняя информационная система отправляет запрос INSERT SELECT FROM external_table в Prostore.
  2. Запрос поступает в сервис исполнения запросов Prostore.
  3. Если запрос был запущен на исполнение в асинхронном режиме, сервис исполнения запросов возвращает ответ о принятии запроса на обработку.
  4. Сервис исполнения запросов отправляет команду на загрузку данных в соответствующие коннекторы и отслеживает состояние загрузки.
    Команда отправляется в коннекторы тех датасорсов, в которых размещаются данные целевой таблицы.
  5. Информация о процессе загрузки данных сохраняется в сервисной базе данных.
  6. Каждый задействованный коннектор загружает данные из топика Kafka в свой датасорс.
    Данные считываются из топика, на который указывает внешняя таблица, используемая в запросе INSERT SELECT FROM external_table.
  7. Когда завершается загрузка каждого или всех пакетов данных (в зависимости от типа датасорса), сервис исполнения запросов отправляет каждому задействованному датасорсу команду на версионирование данных.
  8. Если запрос был запущен на исполнение в синхронном режиме, сервис исполнения запросов возвращает ответ о результате загрузки данных.

Каждый коннектор читает данные из топика Kafka через свою консьюмер-группу. Прочитанное смещение (офсет) учитывается по каждой консьюмер-группе в отдельности.

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