Files
clickstream-data-platform/docs/architecture/generator
ddadminandClaude Fable 5 c28f724706 feat(generator): потеря и дубль purchase (B, D) и счетчики описи
- Зачем:
  - трекер стенда был полным, и правило «деньги — по бэкенду» держалось
    на слове; классы B и D делают недосчет и пересчет трекера
    наблюдаемыми (этап 6, #184).
- Что:
  - подпоток BEACONS: точечная потеря purchase (~3%) и сюжетный дубль
    (~2%) швом после _purchases, с гарантией моста идентичностей и
    условием допуска дубля по паузе до следующего визита;
  - опись считает пять классов по приоритету спеки; фильтр
    classes_vs_inventory расширен, нулевой класс читается нулем;
  - fate.md, seeds.md, dm.md и orders/README.md приведены к имени
    BEACONS и строгому правилу допуска.
- Проверка:
  - make lint, make typecheck, make test (433 passed) и make inventory
    из generator/ — хеши слепков не изменились;
  - на стенде: make smoke, make check-clickhouse, make check-services
    зеленые; в dq_summary classes_vs_inventory и sessions_vs_reference
    pass, витрина сверки показывает lost_event и duplicate_event.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-28 13:13:47 -04:00
..

Генератор кликстрима

Путеводитель показывает, как пройти генератор от корневого зерна до двух выходов дня, не пересказывая код и спеки.

Целевая картина одним взглядом

flowchart LR
    seed["Корневое зерно"] --> streams["Подпотоки"]
    streams --> cohorts["Когорты"]
    cohorts --> audience["Аудитория дня"]
    audience --> visits["Визиты"]
    visits --> output["Выход day.stream"]
    output --> events["Поток событий"]
    output --> backend["Заказы дня<br/>orders.of_day"]

За правой ветвью начинается отдельный набор документов — устройство заказов.

Живой проход

Из каталога generator/ одна команда собирает канонический D0 и показывает все стадии на одном экране:

make demo

Когорту и аудиторию пример получает через открытый интерфейс плана, а визиты считает группировкой выходных строк по VisitID. Код прохода — demo.main.

Родословная

Устройство генератора и основания решений записаны в спеке этапа 2, а границы двух источников и склейки — в мастер-спеке стенда. Основания трех решений записаны в ADR 0015, ADR 0016 и ADR 0017, а спека этапа 2 закрыта. Путеводитель появился по тикету #48: он отвечает на другой вопрос — как пройти принятое устройство по коду.