Витрина показывает на зерне заказа, почему поведение по трекеру и деньги по
бэкенду расходятся. Отложенная покупка остается наблюдаемой до следующего
принятого слепка.
Что сделано
добавлены dm.purchase_vs_orders_rep, _dist, донор и явный договор _v;
purchase сворачивается до заказа и соединяется с dds.order_v через GLOBAL FULL OUTER JOIN с join_use_nulls = 1;
реализованы классы awaiting_order, cancelled, lost_event, duplicate_event, amount_delta, match в договорном порядке;
пересборка охватывает окно слепка, пропущенные дни и самый ранний awaiting_order, затем заменяет дневные партиции;
purchaseRevenue один раз нормализуется в Decimal(18, 2) на границе ODS;
обновлены спека, документы формата, DDS, DM и хранилища.
Проверка
Context7 и ClickHouse 26.3: прямой разбор Decimal и join_use_nulls;
make config-test, корневой make lint;
генератор: make docs, make lint, make typecheck, 429 тестов;
чистое хранилище, явные dds_transform и dm_transform;
make smoke — 21/21, make check-clickhouse — 10/10, make check-services — 7/7;
стартовые классы: match 1573, cancelled 67, amount_delta 22,
awaiting_order 255;
следующий слепок: старый хвост awaiting_order — 0, новый хвост — 254,
ровно по числу покупок без заказа;
два повторных прогона сохранили деловой хеш 2785277936714801277.
Две независимые линии Claude-ревью закрыты с APPROVED. После них пройдены ai-text-lint (Голос: чисто) и отдельная литературная русская вычитка с
повторным APPROVED.
Дополнительное вкусовое ревью Fable закрыто полностью: приняты пять
комментариев к связности, а найденный на перепроверке перенос строки исправлен.
Итог узкой перепроверки: RECHECK: ALL_CLOSED.
## Зачем
Витрина показывает на зерне заказа, почему поведение по трекеру и деньги по
бэкенду расходятся. Отложенная покупка остается наблюдаемой до следующего
принятого слепка.
## Что сделано
- добавлены `dm.purchase_vs_orders_rep`, `_dist`, донор и явный договор `_v`;
- `purchase` сворачивается до заказа и соединяется с `dds.order_v` через
`GLOBAL FULL OUTER JOIN` с `join_use_nulls = 1`;
- реализованы классы `awaiting_order`, `cancelled`, `lost_event`,
`duplicate_event`, `amount_delta`, `match` в договорном порядке;
- пересборка охватывает окно слепка, пропущенные дни и самый ранний
`awaiting_order`, затем заменяет дневные партиции;
- `purchaseRevenue` один раз нормализуется в `Decimal(18, 2)` на границе ODS;
- обновлены спека, документы формата, DDS, DM и хранилища.
## Проверка
- [x] Context7 и ClickHouse 26.3: прямой разбор Decimal и `join_use_nulls`;
- [x] `make config-test`, корневой `make lint`;
- [x] генератор: `make docs`, `make lint`, `make typecheck`, 429 тестов;
- [x] чистое хранилище, явные `dds_transform` и `dm_transform`;
- [x] `make smoke` — 21/21, `make check-clickhouse` — 10/10,
`make check-services` — 7/7;
- [x] 1917 покупок: измененных копеек 0; ошибочных шардов 0;
- [x] стартовые классы: match 1573, cancelled 67, amount_delta 22,
awaiting_order 255;
- [x] следующий слепок: старый хвост awaiting_order — 0, новый хвост — 254,
ровно по числу покупок без заказа;
- [x] два повторных прогона сохранили деловой хеш
`2785277936714801277`.
Две независимые линии Claude-ревью закрыты с `APPROVED`. После них пройдены
`ai-text-lint` (`Голос: чисто`) и отдельная литературная русская вычитка с
повторным `APPROVED`.
Дополнительное вкусовое ревью Fable закрыто полностью: приняты пять
комментариев к связности, а найденный на перепроверке перенос строки исправлен.
Итог узкой перепроверки: `RECHECK: ALL_CLOSED`.
Closes #155
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.
Зачем
Витрина показывает на зерне заказа, почему поведение по трекеру и деньги по
бэкенду расходятся. Отложенная покупка остается наблюдаемой до следующего
принятого слепка.
Что сделано
dm.purchase_vs_orders_rep,_dist, донор и явный договор_v;purchaseсворачивается до заказа и соединяется сdds.order_vчерезGLOBAL FULL OUTER JOINсjoin_use_nulls = 1;awaiting_order,cancelled,lost_event,duplicate_event,amount_delta,matchв договорном порядке;awaiting_order, затем заменяет дневные партиции;purchaseRevenueодин раз нормализуется вDecimal(18, 2)на границе ODS;Проверка
join_use_nulls;make config-test, корневойmake lint;make docs,make lint,make typecheck, 429 тестов;dds_transformиdm_transform;make smoke— 21/21,make check-clickhouse— 10/10,make check-services— 7/7;awaiting_order 255;
ровно по числу покупок без заказа;
2785277936714801277.Две независимые линии Claude-ревью закрыты с
APPROVED. После них пройденыai-text-lint(Голос: чисто) и отдельная литературная русская вычитка сповторным
APPROVED.Дополнительное вкусовое ревью Fable закрыто полностью: приняты пять
комментариев к связности, а найденный на перепроверке перенос строки исправлен.
Итог узкой перепроверки:
RECHECK: ALL_CLOSED.Closes #155
6485be3953toa1412fd9e7a1412fd9e7to20071c565f