diff --git a/README.md b/README.md index e6139e0..5ec1abd 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,16 @@ Streamify нужен, чтобы построить потоковую анал - добавлена русская документация [docs/data_quality_checks.md](docs/data_quality_checks.md); - добавлен CI/static validator `scripts/validate_dbt_quality.py` для проверки dbt quality contract без GCP credentials. +## Мой вклад в этом fork + +Базовый проект уже содержит streaming pipeline и cloud setup. Мой добавленный слой отвечает за проверяемость аналитических core marts: + +- перевел dbt core-модели с deprecated `dbt_utils.surrogate_key` на `dbt_utils.generate_surrogate_key`; +- обновил `dbt_utils` до версии `1.3.3` и зафиксировал package lock; +- добавил schema tests и singular tests для business-critical joins и SCD2-логики; +- усилил Airflow dbt DAG runtime path через `dbt deps` и `dbt build` с timeout-защитой; +- добавил статический CI gate, который проверяет dbt tests, Airflow DAG и документацию без GCP credentials. + Локальная проверка: ```bash diff --git a/docs/data_quality_checks.md b/docs/data_quality_checks.md index 030dba2..806361e 100644 --- a/docs/data_quality_checks.md +++ b/docs/data_quality_checks.md @@ -2,6 +2,16 @@ Streamify строит потоковую аналитику музыкального сервиса: Kafka принимает события, Spark Streaming пишет их в lake, Airflow запускает batch-слой, а dbt собирает core marts для dashboard. Этот документ фиксирует data-quality слой для dbt core marts и Airflow gate, который проверяет, что факты прослушиваний не теряют связи с измерениями. +## Мой вклад в этом fork + +Добавленный слой не меняет исходную идею streaming pipeline. Он делает аналитический слой проверяемым: + +- dbt core marts получили schema tests и singular tests; +- SCD2 dimension `dim_users` проверяется на пересечения интервалов и единственную current row; +- `fact_streams` проверяется на orphan dimension keys; +- Airflow DAG запускает `dbt build`, чтобы models и tests проходили одним quality gate; +- CI проверяет, что README, документация, dbt tests и Airflow DAG остаются синхронизированными. + ## Что Проверяется | Layer | Проверка | Зачем |