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