feat(dds): добавлен публичный контракт события

Зачем:
- Показать слой DDS как договор данных, которому не нужна физическая копия.
- Сохранить простой учебный стенд без отдельного маршрута ради узких прав.

Что:
- Добавлено кластерное представление dds.event_v с явными 44 колонками.
- Роли bi_reader разрешено чтение ODS, DDS и DM при договоре чтения через _v.
- Согласованы мастер-спека, ADR, справочники архитектуры и живые тикеты этапа.
- Зафиксировано исследование поведения DEFINER поверх Distributed.

Проверка:
- make config-test
- make smoke
- make check-clickhouse
- Приёмочные запросы: равенство ODS/DDS, состав колонок, коды устройств и права bi.
This commit is contained in:
ddadmin committed 2026-08-25 17:13:35 -04:00
1 parent 4ea9591a16
commit 9ea361d199
11 files changed
+288 -76

No files matched your search

+2 -3
View File
@@ -45,9 +45,8 @@
- DDS обслуживает человека с дашбордом: время лежит в поясе счётчика,
пересчёт — один раз при наполнении слоя ([дока хранилища](../storage.md),
«Часовые пояса»).
- Публичный договор каждой сущности — `_v`; роли объектов и проверяемая
граница доступа заданы [конвенциями хранилища](../storage.md), «Имена
объектов».
- Публичный договор каждой сущности — `_v`; роли объектов и конвенция чтения
заданы [докой хранилища](../storage.md), «Имена объектов».
- Служебные колонки — координаты собственной загрузки слоя; чужие ярлыки не
переносятся, а спрашиваются у их слоя по ключу сущности. Вывод правила и
цепочка расследования — [модель заказа](order.md).
+3 -5
View File
@@ -22,7 +22,7 @@
автоматический `PREWHERE` — свойство ODS, представление её не усугубляет.
Как публичный договор DDS, представление перечисляет колонки явно и следует
общей [границе доступа](../storage.md), «Имена объектов».
общей [конвенции чтения](../storage.md), «Имена объектов».
## Язык модели
@@ -71,8 +71,8 @@ issue #143.
- **`ecommerce`** — сырой JSON: сырьё, а не атрибут. Разобранные массивы
`purchase_*` и `product_*` в контракте есть; лаба про разбор JSON внутри
колонки читает ODS.
- **`_load_id`, `_load_ts`** — у представления нет собственной загрузки, а
чужие координаты слой не переносит (правило слоя — [модель
- **`_load_ts`** — у представления нет собственной загрузки, а чужие
координаты слой не переносит (правило слоя — [модель
заказа](order.md), «Служебные колонки»); расследование спрашивает ODS по
ключу события.
@@ -96,8 +96,6 @@ issue #143.
## Не входит
- DDL представления и его раскатка на кластер — исполнение этапа 4,
нарезка #136.
- Форма витрин DM — #135.
- Лаба со справочником регионов — issue #143, проектирование лаб.