Опись мира: счётчики классов A и C #157
Notifications
Due Date
No due date set.
Blocks
#158 Звено DQ конвейера и dm.dq_summary
ddmitry/clickstream-data-platform
Reference: ddmitry/clickstream-data-platform#157
Reference in new issue
Block a user
Part of #6.
Цель
Опись получает счётчики наблюдаемых классов расхождений: их читатель —
DQ-проверка сверки — приходит этим этапом (обещание нарезки этапа 3,
#89). Учебный результат: опора-счётчик рядом с растяжкой-хешем, по
словарю описи.
Что войдёт
generator/src/clickstream_generator/inventory.py: счётчикинаблюдаемых классов после приоритета по итоговой судьбе заказов дня;
единица счёта — заказ, опись называет её словом (inventory.md); только
дни с закрытым окном — при N сыгранных днях их N − 7.
match,cancelled,amount_delta— приоритет спеки §4. Классы этапа 6 не заводятся.data/world-inventory.json; тесты вgenerator/tests.исполнено. Спека §8 обещает описи больше принятого словаря («заказы,
выручка и счётчики классов») — привести её к словарю описи той же
правкой: заказы и выручка ждут своего читателя.
Границы
Кому что
Счёт и тесты — Codex целиком по брифу: судьбы уже рождены, счёт
механический, словарь описи задан. Вычитка правок inventory.md и спеки —
Opus.
Сначала прочитать
make lintизgenerator/.Проверка
make lint,make typecheckиmake testвgenerator/зелёные(правило testing.md для правок генератора).
только счёт.
равна числу заказов дня.
После реализации всплыл важный вопрос: чему именно эти счётчики учат.
Их считает сам генератор. Сверка с ними подтверждает, что данные в хранилище соответствуют рождённому миру, но для этого мы подглядываем внутрь источника. Для узкой технической проверки это допустимо. Для учебной DQ-лабы — нет: в обычном магазине такого эталона не будет.
Поэтому перед задачей #158 нужно отдельно решить:
classes_vs_inventoryлибо оставить узкой технической проверкой эталонного мира, либо удалить, если отдельного технического читателя у счётчиков не найдётся;Текущая реализация сохранена в отдельной ветке; в основную ветку она пока не отправляется.
Развилка из комментария выше разобрана, решение:
classes_vs_inventoryостаётся полноправным звеном конвейера и пишет вdm.dq_summary, но всюду названа технической проверкой: её оракул — опись генератора, у настоящего магазина такого оракула нет.Словарь закреплён: термин «Техническая проверка» в CONTEXT.md, правки dm.md, §8 и inventory.md едут этой же веткой. Ветка разблокирована, реализация счётчиков не меняется.