Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
10 changes: 10 additions & 0 deletions docs/data_quality_checks.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 | Проверка | Зачем |
Expand Down