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

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

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

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

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