Создание пайплайна загрузки в открытых данных правительства Москвы для анализа зависимостей в BI на базе современного стека инструментов
- Создать пайплайн загрузки открытых данных правительства Москвы
- Использовать современный стек инструментов
- Анализа зависимостей в BI
- Выбрать набор открытых данных правительства Москвы
- Сделать контейнер сервисов
- Создать слои данных (STG, ODS и DDS) в DWH
- Создать аналитические витрины (DMT) в хранилище горячих данных
- Настроить оркестрацию загрузки данных
- Выполнить пайплан, прогрузить данные
- Проанализировать загруженные данные
- Конфигурация в Docker, разделение на отдельные самостоятельные сервисы
- AirFlow – оркестратор
- dbt – трансформации, тестирование данных
- Cosmos – связка AirFlow и dbt
- PostgreSQL – хранилище данных (DWH)
- ClickHouse - аналитические витрины
- Superset - BI
- Docker - 25.0.3
- AirFlow - 2.8.3
- dbt - 1.7.10
- dbt plugins postgres - 1.7.10
- dbt plugins clickhouse - 1.7.3
- Cosmos - 1.3.2
- PostgreSQL - 16.2
- ClickHouse - 24.2.2.71
- Superset - 3.1.1
- Исходный набор данных “Годовой пассажиропоток по всем видам общественного транспорта в городе Москве”
- Структура проекта
- Структура контейнеров, выделение отдельных сервисов
- Код дага загрузки архива, распаковки json и загрузки данных в STG
- Код дага трансформации в ODS и DDS загруженных данных из STG, а также структура соответствующего проекта dbt при использовании Cosmos для связки с Airflow
- Даги пайплана загрузки открытых данных правительства Москвы
- Граф дага трансформации загруженных данных в STG
- Анализ зависимостей в BI
- Выбранный стек позволят построить пайплайн загрузки данных
- Cosmos позволяет связать AirFlow c dbt, а это дает сделать оркестрация функционала dbt из "коробки", как, например, создание моделей данных, тестирование и инкрементальную загрузку протестированных данных
- Дальнейшие планы по развитию:
- вынести в настройку задание наборов загружаемых открытых данных
- минимизировать количество операций по настройки созданных контейнеров (запустил "docker compose up" и перешел к анализу данных в Superset)
- создание инфраструктуры сделать через Terraform
- использовать облачные ресурсы
- выстроить зависимость дагов загрузки данных
- документирование проекта








