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