Конвейеру нужен работающий процесс 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 прошел независимые линии проверки договора, стандартов и
корректности.
## Зачем
Конвейеру нужен работающий процесс 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
- Зачем:
- конвейеру нужна публикуемая сводка текущего качества с красным завершением при нарушении договоров.
- Что:
- добавлены DDL, публичное представление и пять сверок на естественном деловом зерне.
- даг dq_check встроен после DM и публикует полные дневные партиции до именованных утверждений.
- параллелизм DDS, DM и DQ приведён к измеренному лимиту памяти планировщика.
- Проверка:
- make lint; make config-test; make rebuild-storage.
- make smoke; make check-clickhouse; make check-services.
- три семейства проверок покрашены искусственными расхождениями и восстановлены повторным полным прогоном.
- Зачем:
- параллельный 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 main2026-08-27 18:42:46 +03:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Зачем
Конвейеру нужен работающий процесс DQ: проверка на естественном деловом зерне,
публикация текущего качества дня и красное завершение с именем нарушенного
договора и сохраненной диагностикой.
Что
dm.dq_summary_rep/_dist/_vи общий донор дневныхпартиций;
dq_checkс пятью атомарными проверками и группойmarts_vs_dds;получает только сводку и до двадцати примеров расхождения;
etl_pipelineдополнен звеном DQ после DM;airflow-schedulerподнята до 1,5 ГиБ по замерам, ресурсные пределыотдельных дагов удалены;
реализованному процессу.
Проверка
make lintmake config-testmake rebuild-storagemake smokemake check-clickhousemake check-servicesetl_pipelineна чистом мире завершился зеленым; 32 строкисводки имеют
pass;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покрашены искусственными строками витрин;сводку к текущему зеленому состоянию;
корректности.
Closes #158