feat(ods): добавлено представление актуальных событий

- Зачем:
  - потребителю ODS нужна точная актуальная версия события без знания о FINAL.
- Что:
  - создано ods.event_v над распределённой таблицей событий с FINAL.
  - сверка стартового мира переведена на новое представление.
  - документация различает физические версии ODS и бизнес-представление DDS.
- Проверка:
  - make config-test.
  - make check-clickhouse.
This commit is contained in:
2026-08-18 11:33:59 +03:00
parent 5f72e63b14
commit ded0dac5e2
4 changed files with 49 additions and 14 deletions
+6 -3
View File
@@ -407,7 +407,7 @@ README.
| Kafka | `hits`, `orders` | два топика: `hits` — 2 партиции, `orders` — одна |
| STG | `stg.hits_raw_kafka`, `stg.hits_raw` + MV | сырые строки событий, Kafka Engine на обеих нодах |
| STG | `stg.orders_raw_kafka`, `stg.orders_raw`, без MV | сырые строки слепка; чтец на ноде 1, забирает пакетный шаг |
| ODS | `ods.event` (+`_errors`) | типизированное широкое событие, ReplacingMergeTree |
| ODS | `ods.event` (+`_errors`), `ods.event_v` | типизированные версии событий, брак и точное актуальное состояние |
| ODS | `ods.order_snapshot` (+`_errors`), `ods.order_v` | типизированные версии заказов, брак и точное текущее состояние |
| DDS | `dds.session` | сборка сессий из событий (наследник `dds.click`) |
| DDS | `dds.event_v` | представление над `ods.event`: snake_case-имена, расшифровка кодов `DeviceCategory`; витрины DM читают его, а не ODS напрямую |
@@ -445,8 +445,11 @@ README.
Kafka день переигрывается генератором заново: снимок — кэш чистой функции,
см. [спеку генератора](2026-08-01-generator.md).
`dds.event_v` — первый на стенде пример правила «слой — это контракт, а не
обязательно копия данных».
`ods.event_v` сохраняет имена, типы и зерно ODS, но скрывает `FINAL` и возвращает
актуальную версию события. Будущее `dds.event_v` — другой контракт: оно
переводит событие на язык бизнес-модели, в том числе даёт snake_case-имена и
расшифровывает коды. Это первый на стенде пример правила «слой — это контракт,
а не обязательно копия данных».
Событие в DDS не дублируется: склейки четырёх источников больше нет, ODS уже
широкий и типизированный; DDS хранит бизнес-сущности (сессия, заказ,