В #95 и PR #104 словарь товаров создан как dds.products: это соответствует текущей карте объектов в мастер-спеке, но отдельного решения «почему словари принадлежат DDS» нет. Словарь — одновременно бизнес-справочник и механизм ClickHouse, а будущий словарь регионов может иметь другого владельца и других потребителей.
Нужно отделить случайно унаследованное место первого словаря от общего правила. Учебный вопрос: должен ли менти читать словарь как часть слоя модели данных, как самостоятельные справочные данные или как инфраструктурный объект — и какую дополнительную конструкцию он платит за это различие.
Цель
Решить, где должны находиться словари ClickHouse и нужно ли одно правило для всех словарей. Если dds остаётся домом, обосновать его наравне с альтернативами, а не принимать текущую реализацию за доказательство.
Веер для рассмотрения
Веер не ограничивает исследование, но обязан включать как минимум:
ADR 0006 — имена объектов и исключение для словарей;
ADR 0007 — границы доступа etl, bi, analyst.
Способ работы
Вести развилку через brainstorm-with-docs: сначала веер без оценки, затем конвергенция. До принятого решения никаких правок DDL и инфраструктуры.
## Контекст
В #95 и PR #104 словарь товаров создан как `dds.products`: это соответствует текущей карте объектов в мастер-спеке, но отдельного решения «почему словари принадлежат DDS» нет. Словарь — одновременно бизнес-справочник и механизм ClickHouse, а будущий словарь регионов может иметь другого владельца и других потребителей.
Нужно отделить случайно унаследованное место первого словаря от общего правила. Учебный вопрос: должен ли менти читать словарь как часть слоя модели данных, как самостоятельные справочные данные или как инфраструктурный объект — и какую дополнительную конструкцию он платит за это различие.
## Цель
Решить, где должны находиться словари ClickHouse и нужно ли одно правило для всех словарей. Если `dds` остаётся домом, обосновать его наравне с альтернативами, а не принимать текущую реализацию за доказательство.
## Веер для рассмотрения
Веер не ограничивает исследование, но обязан включать как минимум:
- текущий вариант: все бизнес-словари живут в `dds`;
- отдельную базу справочников вне цепочки `STG → ODS → DDS → DM`;
- размещение рядом с владельцем данных или предметной областью;
- размещение рядом с главным потребителем;
- отказ от единого правила: место определяется происхождением и жизненным циклом конкретного словаря;
- нулевой вариант: не вводить правило до появления второго реального словаря.
До оценки дополнить веер хотя бы одним вариантом, который оспаривает рамку «база ClickHouse — главный способ выразить принадлежность словаря».
## Критерии решения
- чему расположение учит менти и сколько новых исключений или баз заставляет его держать в голове;
- не врёт ли место словаря о направлении данных между слоями;
- кто владеет содержимым, DDL и политикой обновления;
- кто читает словарь: `etl`, `bi`, `analyst`, объекты DDS и витрины DM;
- как решение ведёт себя для каталога товаров и будущего словаря регионов;
- насколько ясно устроены имена, права, документация и поиск объекта в клиенте;
- какова цена переноса уже созданного `dds.products`.
## Критерии приёмки
- [x] Сначала построен полный веер вариантов, затем отдельным проходом выполнена оценка.
- [x] Каждый вариант проверен по всем критериям выше; у отклонённых записана причина.
- [x] Дана одна рекомендация и названы условия, при которых её придётся пересмотреть.
- [x] Решение не выводится только из того, где сейчас лежит `dds.products`.
- [x] Итог записан в ADR; при изменении текущего решения тем же PR согласованы мастер-спека и `docs/architecture/storage.md`.
- [ ] Если нужен перенос объектов, для него создана отдельная задача с командами проверки; в эту задачу реализация не входит.
## Границы
- Не переносить и не переименовывать `dds.products` в рамках исследования.
- Не проектировать содержимое будущего словаря регионов.
- Не менять слои, роли и права ради удобства одного варианта.
- Не заводить универсальную абстракцию словарей: предмет решения — дом и правило принадлежности, а не новый механизм.
## Сначала прочитать
- `CONTEXT.md`: «Хранилище», «Каталог товаров».
- мастер-спека `docs/specs/2026-07-30-stand-v2-realism.md`, разделы 3 и 7;
- `docs/architecture/storage.md`, разделы «Словарь товаров», «Раскладка SQL», «Карта таблиц»;
- ADR 0005 — направление слоёв;
- ADR 0006 — имена объектов и исключение для словарей;
- ADR 0007 — границы доступа `etl`, `bi`, `analyst`.
## Способ работы
Вести развилку через `brainstorm-with-docs`: сначала веер без оценки, затем конвергенция. До принятого решения никаких правок DDL и инфраструктуры.
Закрыто слиянием PR #107. Пять критериев приёмки выполнены и отмечены; шестой
оставлен неотмеченным намеренно.
«Если нужен перенос объектов, для него создана отдельная задача» — снят
владельцем по ходу работы: отдельный тикет ради нескольких строк правки был
признан раздуванием процесса. Перенос dds.products → dic.products уехал
этим же PR вместе с решением.
Там же, вопреки границе «до принятого решения никаких правок DDL», решено и
устройство словаря: под ним появилась подложка dic.products_file на движке File, а сам словарь читает её источником CLICKHOUSE. Это тоже решение
владельца, принятое после написания постановки.
Итог решения — ADR 0012.
Побочная находка замера вынесена отдельным багом #106: правка файлов настройки
ClickHouse не доезжает до живого контейнера.
Закрыто слиянием PR #107. Пять критериев приёмки выполнены и отмечены; шестой
оставлен неотмеченным намеренно.
**«Если нужен перенос объектов, для него создана отдельная задача»** — снят
владельцем по ходу работы: отдельный тикет ради нескольких строк правки был
признан раздуванием процесса. Перенос `dds.products` → `dic.products` уехал
этим же PR вместе с решением.
Там же, вопреки границе «до принятого решения никаких правок DDL», решено и
устройство словаря: под ним появилась подложка `dic.products_file` на движке
`File`, а сам словарь читает её источником `CLICKHOUSE`. Это тоже решение
владельца, принятое после написания постановки.
Итог решения — [ADR 0012](../src/branch/main/docs/adr/0012-dictionary-home.md).
Побочная находка замера вынесена отдельным багом #106: правка файлов настройки
ClickHouse не доезжает до живого контейнера.
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.
Контекст
В #95 и PR #104 словарь товаров создан как
dds.products: это соответствует текущей карте объектов в мастер-спеке, но отдельного решения «почему словари принадлежат DDS» нет. Словарь — одновременно бизнес-справочник и механизм ClickHouse, а будущий словарь регионов может иметь другого владельца и других потребителей.Нужно отделить случайно унаследованное место первого словаря от общего правила. Учебный вопрос: должен ли менти читать словарь как часть слоя модели данных, как самостоятельные справочные данные или как инфраструктурный объект — и какую дополнительную конструкцию он платит за это различие.
Цель
Решить, где должны находиться словари ClickHouse и нужно ли одно правило для всех словарей. Если
ddsостаётся домом, обосновать его наравне с альтернативами, а не принимать текущую реализацию за доказательство.Веер для рассмотрения
Веер не ограничивает исследование, но обязан включать как минимум:
dds;STG → ODS → DDS → DM;До оценки дополнить веер хотя бы одним вариантом, который оспаривает рамку «база ClickHouse — главный способ выразить принадлежность словаря».
Критерии решения
etl,bi,analyst, объекты DDS и витрины DM;dds.products.Критерии приёмки
dds.products.docs/architecture/storage.md.Границы
dds.productsв рамках исследования.Сначала прочитать
CONTEXT.md: «Хранилище», «Каталог товаров».docs/specs/2026-07-30-stand-v2-realism.md, разделы 3 и 7;docs/architecture/storage.md, разделы «Словарь товаров», «Раскладка SQL», «Карта таблиц»;etl,bi,analyst.Способ работы
Вести развилку через
brainstorm-with-docs: сначала веер без оценки, затем конвергенция. До принятого решения никаких правок DDL и инфраструктуры.Закрыто слиянием PR #107. Пять критериев приёмки выполнены и отмечены; шестой
оставлен неотмеченным намеренно.
«Если нужен перенос объектов, для него создана отдельная задача» — снят
владельцем по ходу работы: отдельный тикет ради нескольких строк правки был
признан раздуванием процесса. Перенос
dds.products→dic.productsуехалэтим же PR вместе с решением.
Там же, вопреки границе «до принятого решения никаких правок DDL», решено и
устройство словаря: под ним появилась подложка
dic.products_fileна движкеFile, а сам словарь читает её источникомCLICKHOUSE. Это тоже решениевладельца, принятое после написания постановки.
Итог решения — ADR 0012.
Побочная находка замера вынесена отдельным багом #106: правка файлов настройки
ClickHouse не доезжает до живого контейнера.