data/catalog/products.csv смонтирован read-only в обе ноды и создан как dds.products ON CLUSTER.
Словарь использует FILE(CSVWithNames), строковый ключ COMPLEX_KEY_HASHED, цену Int64 в копейках и LIFETIME(0).
etl, bi и analyst получили dictGet; make check-clickhouse сверяет имя, категорию и цену с исходным CSV под etl на обеих нодах.
Решение по источнику, раскладке и явной кластерной перезагрузке записано в storage.md.
Политика обновления
Каталог меняется вместе с репозиторием. Фоновое обновление отключено, чтобы ноды не отвечали разными версиями. После правки администратор выполняет под default:
Чистый make up прошёл с первого раза; обе ноды ClickHouse: healthy, RestartCount=0.
make lint — зелёный.
make config-test — зелёный.
make smoke — 20/20, 27 с.
make check-clickhouse — 10/10, 24 с.
В generator/: make lint typecheck test — зелёный, 427 тестов за 289,34 с.
Отдельный dictGet под bi и analyst вернул ожидаемый товар.
Разовый опыт обновления
В HOME-0001 цена временно изменена с 129000 на 129001, затем выполнена кластерная команда выше через docker compose exec на первой ноде. Команда заняла 4,1 с; dictGet на обеих нодах вернул 129001. CSV откатан, повторная перезагрузка заняла 3,7 с, обе ноды вернулись к 129000. После отката полный набор из 427 тестов генератора прошёл.
Ревью
Линию дефектов провёл свежий Opus craftsman, линию уместности — Opus deep-reasoner. Каждая находка перепроверена на стенде; подтверждённые исправлены, итоговый diff прошёл отдельный узкий re-check.
Closes #95
## Что сделано
- `data/catalog/products.csv` смонтирован read-only в обе ноды и создан как `dds.products ON CLUSTER`.
- Словарь использует `FILE(CSVWithNames)`, строковый ключ `COMPLEX_KEY_HASHED`, цену `Int64` в копейках и `LIFETIME(0)`.
- `etl`, `bi` и `analyst` получили `dictGet`; `make check-clickhouse` сверяет имя, категорию и цену с исходным CSV под `etl` на обеих нодах.
- Решение по источнику, раскладке и явной кластерной перезагрузке записано в `storage.md`.
## Политика обновления
Каталог меняется вместе с репозиторием. Фоновое обновление отключено, чтобы ноды не отвечали разными версиями. После правки администратор выполняет под `default`:
```sql
SYSTEM RELOAD DICTIONARY ON CLUSTER clickstream_cluster dds.products;
```
Собственного механизма обновления нет.
## Проверка
- Чистый `make up` прошёл с первого раза; обе ноды ClickHouse: `healthy`, `RestartCount=0`.
- `make lint` — зелёный.
- `make config-test` — зелёный.
- `make smoke` — 20/20, 27 с.
- `make check-clickhouse` — 10/10, 24 с.
- В `generator/`: `make lint typecheck test` — зелёный, 427 тестов за 289,34 с.
- Отдельный `dictGet` под `bi` и `analyst` вернул ожидаемый товар.
## Разовый опыт обновления
В `HOME-0001` цена временно изменена с `129000` на `129001`, затем выполнена кластерная команда выше через `docker compose exec` на первой ноде. Команда заняла 4,1 с; `dictGet` на обеих нодах вернул `129001`. CSV откатан, повторная перезагрузка заняла 3,7 с, обе ноды вернулись к `129000`. После отката полный набор из 427 тестов генератора прошёл.
## Ревью
Линию дефектов провёл свежий Opus `craftsman`, линию уместности — Opus `deep-reasoner`. Каждая находка перепроверена на стенде; подтверждённые исправлены, итоговый diff прошёл отдельный узкий re-check.
- Зачем:
- витринам нужен общий с генератором каталог, а менти — пример штатного обновления словаря.
- Что:
- каталог смонтирован read-only в обе ноды и создан как dds.products ON CLUSTER.
- роли получили dictGet, а check-clickhouse сверяет ответ под etl с исходным CSV.
- источник, раскладка и явная политика обновления записаны в документации.
- Проверка:
- make up с чистыми томами; make lint; make config-test; make smoke; make check-clickhouse.
- в generator: make lint typecheck test — 427 тестов прошли.
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.
Closes #95
Что сделано
data/catalog/products.csvсмонтирован read-only в обе ноды и создан какdds.products ON CLUSTER.FILE(CSVWithNames), строковый ключCOMPLEX_KEY_HASHED, ценуInt64в копейках иLIFETIME(0).etl,biиanalystполучилиdictGet;make check-clickhouseсверяет имя, категорию и цену с исходным CSV подetlна обеих нодах.storage.md.Политика обновления
Каталог меняется вместе с репозиторием. Фоновое обновление отключено, чтобы ноды не отвечали разными версиями. После правки администратор выполняет под
default:Собственного механизма обновления нет.
Проверка
make upпрошёл с первого раза; обе ноды ClickHouse:healthy,RestartCount=0.make lint— зелёный.make config-test— зелёный.make smoke— 20/20, 27 с.make check-clickhouse— 10/10, 24 с.generator/:make lint typecheck test— зелёный, 427 тестов за 289,34 с.dictGetподbiиanalystвернул ожидаемый товар.Разовый опыт обновления
В
HOME-0001цена временно изменена с129000на129001, затем выполнена кластерная команда выше черезdocker compose execна первой ноде. Команда заняла 4,1 с;dictGetна обеих нодах вернул129001. CSV откатан, повторная перезагрузка заняла 3,7 с, обе ноды вернулись к129000. После отката полный набор из 427 тестов генератора прошёл.Ревью
Линию дефектов провёл свежий Opus
craftsman, линию уместности — Opusdeep-reasoner. Каждая находка перепроверена на стенде; подтверждённые исправлены, итоговый diff прошёл отдельный узкий re-check.