feat(clickhouse): справочники вынесены в зону dic, словарь читает подложку
Зачем: место словаря в dds было унаследовано от первого объекта, а не решено. Справочник читают несколько слоёв, а производит его в хранилище ни один — прописка внутри одного из потребителей приписывала DDS владение, которого у него нет. Что: заведена база dic вне цепочки STG → ODS → DDS → DM, dds.products переехал в dic.products. Под словарём появилась подложка dic.products_file на движке File — намеренное усложнение ради урока: в бою источник словаря приезжает процессом, а не лежит файлом у сервера. Источник объявлен формой query и приводит цену из целых копеек каталога в Decimal(18, 2), как у денег бэкенда. Обновление — окном LIFETIME(MIN 60 MAX 90) вместо ручной перезагрузки, ценой заявленной неатомарности между нодами. У словаря свой беспарольный пользователь dict с единственным правом на чтение dic. Суффикс _file добавлен в конвенцию имён ADR 0006. Решение, отвергнутые варианты и условия пересмотра — ADR 0012. Проверка: make clean && make up на собранном заново стенде — зелено, make smoke 20 проверок и 0 ошибок, make lint чисто. Словарь LOADED со 180 строками, цена Decimal(18, 2) и точна на копейках: 188990 → 1889.90. Пользователь bi читает словарь dictGet-ом со второй ноды, analyst — подложку соединением, база dds пуста. Минимальное право на движок замерено тремя пользователями: достаточно GRANT FILE ON *.*, хотя отказ называет TABLE ENGINE ON File. Closes #105 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -6,7 +6,13 @@
|
||||
|
||||
Имя объекта в ClickHouse заканчивается тем, что это за объект: `_rep` —
|
||||
локальная таблица шарда, `_dist` — `Distributed` поверх неё, `_kafka` — чтец
|
||||
топика, `_mv` — материализованное представление, `_v` — обычное представление.
|
||||
топика, `_file` — чтец файла, `_mv` — материализованное представление, `_v` —
|
||||
обычное представление.
|
||||
|
||||
Суффикс `_file` добавлен 20 августа 2026 года вместе с подложкой под словарём
|
||||
товаров ([ADR 0012](0012-dictionary-home.md)). Он ровно параллелен `_kafka`:
|
||||
чтец внешнего источника, по копии на каждой ноде, без репликации и без
|
||||
распределённой пары.
|
||||
|
||||
Суффикс носит каждый физический объект, поэтому голого имени у таблицы не
|
||||
существует: запрос к `stg.hits_raw` даёт ошибку «нет такой таблицы».
|
||||
|
||||
Reference in New Issue
Block a user