docs(architecture): ледгер stand.md разбит по темам, кальки в world.md сняты
Зачем: ревью владельца по PR #213. Сверка конфигурации в stand.md приехала из README одним абзацем на двадцать строк, а Superset был приклеен к Airflow без пустой строки. Три места в world.md читались калькой с английского. Что: ледгер «Что проверено» разбит на записи по темам — ClickHouse, Kafka, метрики и Grafana, Airflow, Superset. В world.md заголовок «Как позвать генератор» стал «Как запустить генератор» (якоря в README и generator/README.md обновлены), переписаны абзацы про значения по умолчанию и про сокет Docker. Смысл не менялся. Словарь проекта («пульт мира», «опись мира», «работник», «сырье») не трогался: это термины CONTEXT.md и ADR, их пересмотр — отдельная развилка. Проверка: скрипт ссылок из тикета — пустой вывод; make config-test — ЗЕЛЁНО; старый якорь «как-позвать-генератор» в репозитории не встречается. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014QBCtU38qSHg5DvgtnKXcW
This commit is contained in:
1 parent
bad5981904
commit
7a3542d933
4 files changed
+22
-17
No files matched your search
@@ -91,8 +91,11 @@ ClickHouse:
|
||||
создавал отдельный путь каждого шарда без вписанных вручную значений. Для
|
||||
образа зафиксирован точный текущий
|
||||
[LTS-выпуск 26.3.17.56](https://github.com/ClickHouse/ClickHouse/releases/tag/v26.3.17.56-lts);
|
||||
серверы и keeper используют один образ. Настройки Kafka 4.3.1 сверены с
|
||||
серверы и keeper используют один образ.
|
||||
|
||||
Настройки Kafka 4.3.1 сверены с
|
||||
[примером односерверного KRaft](https://github.com/apache/kafka/blob/4.3.1/docker/examples/docker-compose-files/single-node/plaintext/docker-compose.yml).
|
||||
|
||||
Секция метрик взята из конфигурации закреплённого образа ClickHouse и проверена
|
||||
на серверах и keeper. Подготовка источников Grafana сверена с
|
||||
[официальным описанием автоматической настройки](https://grafana.com/docs/grafana/latest/administration/provisioning/)
|
||||
@@ -116,6 +119,7 @@ Airflow закреплён на 3.3.0. Состав обязательных п
|
||||
`clickhouse-connect`. Официальный провайдер Kafka сам использует
|
||||
`confluent-kafka`; отдельное подключение и его обёртки здесь не нужны, поэтому
|
||||
клиент Kafka добавлен в образ напрямую.
|
||||
|
||||
Superset закреплён на 6.1.0; драйвер `clickhouse-connect`, форма
|
||||
`clickhousedb://` и драйвер Postgres сверены с
|
||||
[документацией подключений Superset](https://superset.apache.org/user-docs/6.1.0/databases/)
|
||||
|
||||
+13
-12
@@ -50,7 +50,7 @@ uv run --project generator python -m clickstream_generator batch \
|
||||
sha256sum tmp/day0.jsonl
|
||||
```
|
||||
|
||||
## Как позвать генератор
|
||||
## Как запустить генератор
|
||||
|
||||
События производит генератор из [`generator/`](../../generator/). Модельный день —
|
||||
функция зерна и номера дня, поэтому один и тот же день всегда даёт те же
|
||||
@@ -112,11 +112,12 @@ uv run --project generator python -m clickstream_generator batch \
|
||||
флагами, принимается и переменными окружения — так генератор позовёт даг
|
||||
этапа 5; полный список у `--help`.
|
||||
|
||||
**Умолчания есть не у всего, и это нарочно.** Зерно, число дней и темп живого
|
||||
дня описывают модель мира — их генератор знает сам. День на оси, приёмник и имя
|
||||
топика описывают стенд, на котором его запустили: не назвали — отказ и ненулевой
|
||||
код возврата, ещё до первого события. Поэтому умолчание дня и живёт в
|
||||
`Makefile`: день называет тот, кто запускает, а не тот, кого запускают.
|
||||
**Значения по умолчанию есть не у всех параметров, и это сделано специально.**
|
||||
Зерно, число дней и темп живого дня описывают модель мира — их генератор знает
|
||||
сам. День на оси, приемник и имя топика описывают стенд, на котором генератор
|
||||
запустили: если их не задать, он откажется работать и вернет ненулевой код еще
|
||||
до первого события. Поэтому значение дня по умолчанию живет в `Makefile`: день
|
||||
задает тот, кто запускает, а не тот, кого запускают.
|
||||
|
||||
## Пульт мира
|
||||
|
||||
@@ -153,9 +154,9 @@ uv run --project generator python -m clickstream_generator batch \
|
||||
встанет на границе модельных суток, доиграв начатый день. Форма пульта и доводы
|
||||
целиком — [ADR 0009](../adr/0009-world-control.md).
|
||||
|
||||
**Плата названа вслух: планировщику Airflow отдан сокет докера** — иначе
|
||||
контейнер генератора ему не поднять. Доступ к сокету равен праву root на
|
||||
машине; для локального учебного стенда размен принят, но знать о нём надо.
|
||||
Открывает дверь не монтирование, а членство в группе: GID группы `docker` у
|
||||
каждой машины свой, живёт в `.env` и подсматривается командой
|
||||
`getent group docker`.
|
||||
**У этого решения есть цена: планировщику Airflow отдан сокет Docker** —
|
||||
иначе ему не поднять контейнер генератора. Доступ к сокету равен правам root
|
||||
на машине; для локального учебного стенда это приемлемо, но знать об этом
|
||||
нужно. Доступ дает не само монтирование сокета, а членство в группе `docker`:
|
||||
у нее на каждой машине свой GID, он записан в `.env`, а узнать его можно
|
||||
командой `getent group docker`.
|
||||
Reference in new issue
Block a user