Проект создан исключительно для подсчета ключевых метрик банковских данных:
- Количество транзакций по клиенту (
customer_id) - Сумма транзакций по карте (
card_id) - Количество активных счетов по городу (
city)
- Получает данные из PostgreSQL (OLTP)
- Отслеживает изменения через CDC (Debezium + Kafka)
- Сохраняет данные и историю изменений в ClickHouse
- Применяет трансформации через dbt (STG → RAW → ODS)
- Оркестрирует процессы и мониторит коннекторы через Airflow
- PostgreSQL — источник данных
- Debezium + Kafka — CDC (отслеживание изменений)
- ClickHouse — аналитическое хранилище
- dbt — трансформации и SCD2
- Airflow — DAG-и и мониторинг процессов
- Docker Compose — локальное развертывание всех сервисов
- Создать
.envс параметрами подключения к PostgreSQL и ClickHouse. - Запустить все сервисы:
docker-compose up -d
Airflow доступен на http://localhost:8080
Debezium автоматически подключает коннекторы для таблиц customer, account, card, transaction.
DAG-и:
pg_to_ch_dbt_incremental_dwh — первичная загрузка и трансформации
cdc_to_dwh — обработка CDC и обновление ODS
cdc_monitoring — мониторинг Debezium и Kafka lag
Проект полностью построен вокруг расчета указанных метрик, других функций или аналитики не реализует.