Merge pull request 'docs(dds): уточнён публичный контракт события' (#162) from 150-dds-event-review-fixes into main
This commit was merged in pull request #162.
This commit is contained in:
commit
96829718f9
4 files changed
+22
-13
No files matched your search
@@ -53,11 +53,13 @@
|
|||||||
Стенд учит не администрированию доступа, а чтению отказа в правах: человек
|
Стенд учит не администрированию доступа, а чтению отказа в правах: человек
|
||||||
должен узнать в бою картину, которую видел здесь, и понимать, чего просить.
|
должен узнать в бою картину, которую видел здесь, и понимать, чего просить.
|
||||||
Отсюда критерий отбора — модель должна читаться из текста ошибки, а не из
|
Отсюда критерий отбора — модель должна читаться из текста ошибки, а не из
|
||||||
описания. Поэтому пользователей мало, имена у них говорящие, а `bi` отделён от
|
описания. Поэтому пользователей мало, имена у них говорящие. В бою BI обычно
|
||||||
STG и от записи. Один пользователь может сверить всю цепочку DM → DDS → ODS,
|
читает витрины и модельный слой. ODS ему могут открыть для расследования или
|
||||||
не получая доступа к сырью и изменению данных. Справочники видны всем читателям
|
сверки. Стенд оставляет этот доступ постоянным, но сохраняет две крупные
|
||||||
и никому на запись: зона входит в хранилище сбоку, и её содержимым владеет файл
|
границы: `bi` отделён от STG и от записи. Один пользователь может сверить всю
|
||||||
репозитория, а не слой.
|
цепочку DM → DDS → ODS, не получая доступа к сырью и изменению данных.
|
||||||
|
Справочники видны всем читателям и никому на запись: зона входит в хранилище
|
||||||
|
сбоку, и её содержимым владеет файл репозитория, а не слой.
|
||||||
|
|
||||||
Ограничить `bi` одними `_v` поверх `Distributed` можно только отдельным
|
Ограничить `bi` одними `_v` поверх `Distributed` можно только отдельным
|
||||||
маршрутом, учётной записью или копией данных. Эта механика не даёт нового урока.
|
маршрутом, учётной записью или копией данных. Эта механика не даёт нового урока.
|
||||||
@@ -200,7 +202,7 @@ ClickHouse через MCP Context7 (#114).
|
|||||||
Расширение `bi_reader` проверено на живом стенде 25 августа 2026 года (#150):
|
Расширение `bi_reader` проверено на живом стенде 25 августа 2026 года (#150):
|
||||||
|
|
||||||
- `SHOW GRANTS FOR bi_reader` содержит `SELECT` на ODS, DDS и DM;
|
- `SHOW GRANTS FOR bi_reader` содержит `SELECT` на ODS, DDS и DM;
|
||||||
- `bi` прочитал одинаковые 401185 строк из `ods.event_v` и `dds.event_v`;
|
- `bi` прочитал одинаковое число строк из `ods.event_v` и `dds.event_v`;
|
||||||
- чтение `stg.hits_raw_rep` завершилось ошибкой `ACCESS_DENIED`;
|
- чтение `stg.hits_raw_rep` завершилось ошибкой `ACCESS_DENIED`;
|
||||||
- представление над `Distributed` с `SQL SECURITY DEFINER` на удалённой ноде
|
- представление над `Distributed` с `SQL SECURITY DEFINER` на удалённой ноде
|
||||||
сохранило исходного пользователя `bi`. Причина и отклонённые варианты
|
сохранило исходного пользователя `bi`. Причина и отклонённые варианты
|
||||||
|
|||||||
@@ -52,11 +52,15 @@
|
|||||||
стенда несёт число — принятое отступление: спека, раздел 1.1), контракт возвращает
|
стенда несёт число — принятое отступление: спека, раздел 1.1), контракт возвращает
|
||||||
ему боевой вид.
|
ему боевой вид.
|
||||||
|
|
||||||
Другие коды остаются кодами. `goals_reached` — справочника целей на стенде
|
Значения `device_category` 1–4 получают имена, остальные сохраняются
|
||||||
нет, id и есть язык. Регионы в расшифровке не нуждаются: выгрузка несёт
|
десятичной строкой. Новый код остаётся видимым, пока у него не появится имя в
|
||||||
названия рядом с id (`region_city`, `region_country`), словарь ничего бы не
|
договоре.
|
||||||
раскрыл. Идея дать менти собрать справочник регионов самому ушла в лабы —
|
|
||||||
issue #143.
|
Остальные кодированные атрибуты не расшифровываются. Для `goals_reached`
|
||||||
|
справочника целей на стенде нет, id и есть язык. Регионы в расшифровке не
|
||||||
|
нуждаются: выгрузка несёт названия рядом с id (`region_city`,
|
||||||
|
`region_country`), словарь ничего бы не раскрыл. Идея дать менти собрать
|
||||||
|
справочник регионов самому ушла в лабы — issue #143.
|
||||||
|
|
||||||
## Что скрыто
|
## Что скрыто
|
||||||
|
|
||||||
|
|||||||
@@ -497,8 +497,8 @@ SQL-файлы исполняет штатный `SQLExecuteQueryOperator`. Пр
|
|||||||
|
|
||||||
### DDL
|
### DDL
|
||||||
|
|
||||||
Файлы лежат в `sql/ddl/` и применяются по порядку имён: зависимости создаются
|
Файлы лежат в `sql/ddl/` и применяются по порядку имён: источник и цель
|
||||||
раньше потребителей.
|
создаются до представления или матвью, которые их используют.
|
||||||
|
|
||||||
| Файл | Что в нём |
|
| Файл | Что в нём |
|
||||||
|---|---|
|
|---|---|
|
||||||
|
|||||||
@@ -9,6 +9,9 @@
|
|||||||
--
|
--
|
||||||
-- event_date берётся напрямую из EventDate. Пересчёт из event_time помешал бы
|
-- event_date берётся напрямую из EventDate. Пересчёт из event_time помешал бы
|
||||||
-- первичному индексу отбирать день до чтения.
|
-- первичному индексу отбирать день до чтения.
|
||||||
|
--
|
||||||
|
-- Europe/Samara задаёт пояс счётчика модельного мира. DDS отдаёт event_time
|
||||||
|
-- в этой временной линзе.
|
||||||
CREATE VIEW IF NOT EXISTS dds.event_v ON CLUSTER clickstream_cluster
|
CREATE VIEW IF NOT EXISTS dds.event_v ON CLUSTER clickstream_cluster
|
||||||
AS
|
AS
|
||||||
SELECT
|
SELECT
|
||||||
|
|||||||
Reference in new issue
Block a user