7.1 Модуль интеграции (ETL)
Модуль интеграции (ETL) в составе платформы “Цифровой Двойник Города” реализован как набор отдельных, технологически обособленных компонентов, предназначенных для автоматической загрузки, трансформации и подготовки данных. Он представляет собой иерархию микросервисов и скриптов обработки, сгруппированных в логические блоки по функциям.
Структура модуля включает:
- Службы загрузки и импорта данных — компоненты, реализующие подключение к источникам (локальные файлы, API, базы данных), регулярное обновление и загрузку новых версий данных;
- Блоки преобразования и нормализации — реализованы в виде цепочек скриптов на языке R и С++, отвечающих за перекодировку, устранение пропусков, приведение к единой структуре и формирование витрин;
- Каталог справочников и словарей — отдельный компонент, хранящий классификаторы, соответствия единиц измерения, типы объектов и территориальные привязки;
- Диспетчер ETL-задач — управляет последовательностью запуска, журналированием, хранением логов выполнения и сигнализацией об ошибках;
- Интерфейс настройки загрузок — позволяет добавлять новые источники, задавать правила обработки, графики обновления и параметры валидации без изменения кода модулей.
Технически компонент ETL реализован на базе:
- R-сценариев и RMarkdown-шаблонов (для обработки, визуализации, логирования);
- ClickHouse (для промежуточного и итогового хранения);
- Docker-контейнеров (для изоляции процессов);
- Seafile (для хранения вспомогательных файлов и выгрузок);
- GitLab (для хранения версий ETL-моделей и истории изменений).
Каждая часть модуля может быть обновлена или масштабирована независимо. Это обеспечивает лёгкую адаптацию под новые задачи, добавление ветвей обработки — например, под форматы Росфинмониторинга, ТЭБ или ведомственные формы Минсельхоза — без изменения базовой логики платформы.