Словарь товаров из каталога #95

Closed
opened 2026-08-17 22:54:58 +03:00 by ddmitry · 0 comments
Owner

Part of #5.

Цель

data/catalog/products.csv становится словарём ClickHouse из файла: витрины
этапа 4 получат dictGet, менти — разговор о политике обновления словаря.
Файл один у генератора и стенда — расхождений нет по построению.

Что войдёт

  • Файл каталога монтируется в обе ноды; словарь создаётся ON CLUSTER.
  • Форму словаря (источник-файл, layout, lifetime) сверить с актуальной
    документацией ClickHouse через MCP Context7; решение зафиксировать в
    storage.md тем же PR.
  • make check-clickhouse получает вопрос «словарь отвечает dictGet на
    обеих нодах» — то, что спрашивают у ClickHouse и он отвечает сам.

Границы

  • Витрин с dictGet здесь нет — этап 4.
  • Каталог не менять: состав колонок и уровень спроса — решения #50.
  • Политика обновления — штатные средства словаря, своего механизма не
    строить.

Кому что

Целиком Кодекс: контракт полный, вкусовых решений почти нет; форму словаря сверить через Context7 (у Кодекса подключён). Линию уместности на ревью держит Opus. Бриф Кодексу обязан требовать: проверять свойство, а не текст вывода грепом; только POSIX-инструменты (ripgrep на машине стенда нет); вердикт «недостижимо» перепроверять на достижимость, а не на факт.

Сначала прочитать

  • мастер-спека, раздел 3;
  • docs/architecture/storage.md;
  • compose.yaml — как монтируются конфиги нод ClickHouse;
  • generator/src/clickstream_generator/inventory.py — хеш каталога в описи.

Проверка

  • make lint, make config-test; make smoke,
    make check-clickhouse зелёные на чисто поднятом стенде.
  • dictGet по известному sku возвращает имя, категорию и цену на
    обеих нодах.
  • Разовый опыт обновления — на копии файла или с откатом: правка CSV
    видна после штатной перезагрузки словаря, после отката make test
    генератора зелёный (хеш каталога лежит в описи). Замер и способ — в
    тело PR.
Part of #5. ## Цель `data/catalog/products.csv` становится словарём ClickHouse из файла: витрины этапа 4 получат `dictGet`, менти — разговор о политике обновления словаря. Файл один у генератора и стенда — расхождений нет по построению. ## Что войдёт - Файл каталога монтируется в обе ноды; словарь создаётся `ON CLUSTER`. - Форму словаря (источник-файл, layout, lifetime) сверить с актуальной документацией ClickHouse через MCP Context7; решение зафиксировать в `storage.md` тем же PR. - `make check-clickhouse` получает вопрос «словарь отвечает `dictGet` на обеих нодах» — то, что спрашивают у ClickHouse и он отвечает сам. ## Границы - Витрин с `dictGet` здесь нет — этап 4. - Каталог не менять: состав колонок и уровень спроса — решения #50. - Политика обновления — штатные средства словаря, своего механизма не строить. ## Кому что Целиком Кодекс: контракт полный, вкусовых решений почти нет; форму словаря сверить через Context7 (у Кодекса подключён). Линию уместности на ревью держит Opus. Бриф Кодексу обязан требовать: проверять свойство, а не текст вывода грепом; только POSIX-инструменты (ripgrep на машине стенда нет); вердикт «недостижимо» перепроверять на достижимость, а не на факт. ## Сначала прочитать - мастер-спека, раздел 3; - `docs/architecture/storage.md`; - `compose.yaml` — как монтируются конфиги нод ClickHouse; - `generator/src/clickstream_generator/inventory.py` — хеш каталога в описи. ## Проверка - [ ] `make lint`, `make config-test`; `make smoke`, `make check-clickhouse` зелёные на чисто поднятом стенде. - [ ] `dictGet` по известному `sku` возвращает имя, категорию и цену на обеих нодах. - [ ] Разовый опыт обновления — на копии файла или с откатом: правка CSV видна после штатной перезагрузки словаря, после отката `make test` генератора зелёный (хеш каталога лежит в описи). Замер и способ — в тело PR.
ddmitry added the ready-for-agent label 2026-08-17 22:56:22 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ddmitry/clickstream-data-platform#95