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

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

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

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

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