feat(dq): добавлен контроль качества конвейера #173

Merged
ddmitry merged 2 commits from 158-dq-pipeline into main 2026-08-27 18:42:46 +03:00
Owner

Зачем

Конвейеру нужен работающий процесс DQ: проверка на естественном деловом зерне,
публикация текущего качества дня и красное завершение с именем нарушенного
договора и сохраненной диагностикой.

Что

  • добавлены dm.dq_summary_rep / _dist / _v и общий донор дневных
    партиций;
  • создан даг dq_check с пятью атомарными проверками и группой
    marts_vs_dds;
  • четыре проверки сводят деловые ключи до дневного итога в ClickHouse, Airflow
    получает только сводку и до двадцати примеров расхождения;
  • техническая проверка классов заказов читает небольшой JSON-эталон в Python;
  • etl_pipeline дополнен звеном DQ после DM;
  • коробка airflow-scheduler поднята до 1,5 ГиБ по замерам, ресурсные пределы
    отдельных дагов удалены;
  • документация DM, ETL, хранилища, ресурсов и мастер-спека приведены к
    реализованному процессу.

Проверка

  • make lint
  • make config-test
  • make rebuild-storage
  • make smoke
  • make check-clickhouse
  • make check-services
  • полный etl_pipeline на чистом мире завершился зеленым; 32 строки
    сводки имеют pass;
  • при 640 МиБ параллельный dq_check воспроизводимо получил oom_kill=1;
    при 1 ГиБ дошел до memory.max; при 1,5 ГиБ полный конвейер прошел с
    memory.events.max=0 и пиком 1 013 760 000 байт;
  • sessions_vs_reference покрашена лишней сессией за искусственный день;
  • classes_vs_inventory покрашена временным расхождением с описью;
  • три проверки marts_vs_dds покрашены искусственными строками витрин;
  • после уборки повторный прогон удалил прежнюю красную дату и вернул
    сводку к текущему зеленому состоянию;
  • итоговый diff прошел независимые линии проверки договора, стандартов и
    корректности.

Closes #158

## Зачем Конвейеру нужен работающий процесс DQ: проверка на естественном деловом зерне, публикация текущего качества дня и красное завершение с именем нарушенного договора и сохраненной диагностикой. ## Что - добавлены `dm.dq_summary_rep` / `_dist` / `_v` и общий донор дневных партиций; - создан даг `dq_check` с пятью атомарными проверками и группой `marts_vs_dds`; - четыре проверки сводят деловые ключи до дневного итога в ClickHouse, Airflow получает только сводку и до двадцати примеров расхождения; - техническая проверка классов заказов читает небольшой JSON-эталон в Python; - `etl_pipeline` дополнен звеном DQ после DM; - коробка `airflow-scheduler` поднята до 1,5 ГиБ по замерам, ресурсные пределы отдельных дагов удалены; - документация DM, ETL, хранилища, ресурсов и мастер-спека приведены к реализованному процессу. ## Проверка - [x] `make lint` - [x] `make config-test` - [x] `make rebuild-storage` - [x] `make smoke` - [x] `make check-clickhouse` - [x] `make check-services` - [x] полный `etl_pipeline` на чистом мире завершился зеленым; 32 строки сводки имеют `pass`; - [x] при 640 МиБ параллельный `dq_check` воспроизводимо получил `oom_kill=1`; при 1 ГиБ дошел до `memory.max`; при 1,5 ГиБ полный конвейер прошел с `memory.events.max=0` и пиком 1 013 760 000 байт; - [x] `sessions_vs_reference` покрашена лишней сессией за искусственный день; - [x] `classes_vs_inventory` покрашена временным расхождением с описью; - [x] три проверки `marts_vs_dds` покрашены искусственными строками витрин; - [x] после уборки повторный прогон удалил прежнюю красную дату и вернул сводку к текущему зеленому состоянию; - [x] итоговый diff прошел независимые линии проверки договора, стандартов и корректности. Closes #158
ddmitry added 1 commit 2026-08-27 14:56:29 +03:00
- Зачем:
  - конвейеру нужна публикуемая сводка текущего качества с красным завершением при нарушении договоров.
- Что:
  - добавлены DDL, публичное представление и пять сверок на естественном деловом зерне.
  - даг dq_check встроен после DM и публикует полные дневные партиции до именованных утверждений.
  - параллелизм DDS, DM и DQ приведён к измеренному лимиту памяти планировщика.
- Проверка:
  - make lint; make config-test; make rebuild-storage.
  - make smoke; make check-clickhouse; make check-services.
  - три семейства проверок покрашены искусственными расхождениями и восстановлены повторным полным прогоном.
ddmitry added 1 commit 2026-08-27 18:25:52 +03:00
- Зачем:
  - параллельный DQ выгружал деловые ключи в Python и исчерпывал 640 МиБ планировщика.
- Что:
  - четыре сверки агрегируют дневные итоги и ограниченную диагностику в ClickHouse.
  - коробка планировщика поднята до 1,5 ГиБ, локальные пределы задач удалены.
  - измерения и граница между SQL и Python записаны в документации.
- Проверка:
  - make lint, make config-test, make smoke, make check-clickhouse, make check-services.
  - полный etl_pipeline, красный и восстановительный прогоны dq_check.
ddmitry merged commit 35d43125b1 into main 2026-08-27 18:42:46 +03:00
ddmitry deleted branch 158-dq-pipeline 2026-08-27 18:42:46 +03:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ddmitry/clickstream-data-platform#173