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
@@ -95,7 +95,7 @@ Airflow его явную пересборку: удалит прикладны
|
|||||||
## Как позвать генератор
|
## Как позвать генератор
|
||||||
|
|
||||||
Режимы и команды запуска генератора описаны в
|
Режимы и команды запуска генератора описаны в
|
||||||
[справочнике мира](docs/architecture/world.md#как-позвать-генератор).
|
[справочнике мира](docs/architecture/world.md#как-запустить-генератор).
|
||||||
|
|
||||||
### Пульт мира
|
### Пульт мира
|
||||||
|
|
||||||
|
|||||||
@@ -91,8 +91,11 @@ ClickHouse:
|
|||||||
создавал отдельный путь каждого шарда без вписанных вручную значений. Для
|
создавал отдельный путь каждого шарда без вписанных вручную значений. Для
|
||||||
образа зафиксирован точный текущий
|
образа зафиксирован точный текущий
|
||||||
[LTS-выпуск 26.3.17.56](https://github.com/ClickHouse/ClickHouse/releases/tag/v26.3.17.56-lts);
|
[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).
|
[примером односерверного KRaft](https://github.com/apache/kafka/blob/4.3.1/docker/examples/docker-compose-files/single-node/plaintext/docker-compose.yml).
|
||||||
|
|
||||||
Секция метрик взята из конфигурации закреплённого образа ClickHouse и проверена
|
Секция метрик взята из конфигурации закреплённого образа ClickHouse и проверена
|
||||||
на серверах и keeper. Подготовка источников Grafana сверена с
|
на серверах и keeper. Подготовка источников Grafana сверена с
|
||||||
[официальным описанием автоматической настройки](https://grafana.com/docs/grafana/latest/administration/provisioning/)
|
[официальным описанием автоматической настройки](https://grafana.com/docs/grafana/latest/administration/provisioning/)
|
||||||
@@ -116,6 +119,7 @@ Airflow закреплён на 3.3.0. Состав обязательных п
|
|||||||
`clickhouse-connect`. Официальный провайдер Kafka сам использует
|
`clickhouse-connect`. Официальный провайдер Kafka сам использует
|
||||||
`confluent-kafka`; отдельное подключение и его обёртки здесь не нужны, поэтому
|
`confluent-kafka`; отдельное подключение и его обёртки здесь не нужны, поэтому
|
||||||
клиент Kafka добавлен в образ напрямую.
|
клиент Kafka добавлен в образ напрямую.
|
||||||
|
|
||||||
Superset закреплён на 6.1.0; драйвер `clickhouse-connect`, форма
|
Superset закреплён на 6.1.0; драйвер `clickhouse-connect`, форма
|
||||||
`clickhousedb://` и драйвер Postgres сверены с
|
`clickhousedb://` и драйвер Postgres сверены с
|
||||||
[документацией подключений Superset](https://superset.apache.org/user-docs/6.1.0/databases/)
|
[документацией подключений 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
|
sha256sum tmp/day0.jsonl
|
||||||
```
|
```
|
||||||
|
|
||||||
## Как позвать генератор
|
## Как запустить генератор
|
||||||
|
|
||||||
События производит генератор из [`generator/`](../../generator/). Модельный день —
|
События производит генератор из [`generator/`](../../generator/). Модельный день —
|
||||||
функция зерна и номера дня, поэтому один и тот же день всегда даёт те же
|
функция зерна и номера дня, поэтому один и тот же день всегда даёт те же
|
||||||
@@ -112,11 +112,12 @@ uv run --project generator python -m clickstream_generator batch \
|
|||||||
флагами, принимается и переменными окружения — так генератор позовёт даг
|
флагами, принимается и переменными окружения — так генератор позовёт даг
|
||||||
этапа 5; полный список у `--help`.
|
этапа 5; полный список у `--help`.
|
||||||
|
|
||||||
**Умолчания есть не у всего, и это нарочно.** Зерно, число дней и темп живого
|
**Значения по умолчанию есть не у всех параметров, и это сделано специально.**
|
||||||
дня описывают модель мира — их генератор знает сам. День на оси, приёмник и имя
|
Зерно, число дней и темп живого дня описывают модель мира — их генератор знает
|
||||||
топика описывают стенд, на котором его запустили: не назвали — отказ и ненулевой
|
сам. День на оси, приемник и имя топика описывают стенд, на котором генератор
|
||||||
код возврата, ещё до первого события. Поэтому умолчание дня и живёт в
|
запустили: если их не задать, он откажется работать и вернет ненулевой код еще
|
||||||
`Makefile`: день называет тот, кто запускает, а не тот, кого запускают.
|
до первого события. Поэтому значение дня по умолчанию живет в `Makefile`: день
|
||||||
|
задает тот, кто запускает, а не тот, кого запускают.
|
||||||
|
|
||||||
## Пульт мира
|
## Пульт мира
|
||||||
|
|
||||||
@@ -153,9 +154,9 @@ uv run --project generator python -m clickstream_generator batch \
|
|||||||
встанет на границе модельных суток, доиграв начатый день. Форма пульта и доводы
|
встанет на границе модельных суток, доиграв начатый день. Форма пульта и доводы
|
||||||
целиком — [ADR 0009](../adr/0009-world-control.md).
|
целиком — [ADR 0009](../adr/0009-world-control.md).
|
||||||
|
|
||||||
**Плата названа вслух: планировщику Airflow отдан сокет докера** — иначе
|
**У этого решения есть цена: планировщику Airflow отдан сокет Docker** —
|
||||||
контейнер генератора ему не поднять. Доступ к сокету равен праву root на
|
иначе ему не поднять контейнер генератора. Доступ к сокету равен правам root
|
||||||
машине; для локального учебного стенда размен принят, но знать о нём надо.
|
на машине; для локального учебного стенда это приемлемо, но знать об этом
|
||||||
Открывает дверь не монтирование, а членство в группе: GID группы `docker` у
|
нужно. Доступ дает не само монтирование сокета, а членство в группе `docker`:
|
||||||
каждой машины свой, живёт в `.env` и подсматривается командой
|
у нее на каждой машине свой GID, он записан в `.env`, а узнать его можно
|
||||||
`getent group docker`.
|
командой `getent group docker`.
|
||||||
+3
-3
@@ -77,9 +77,9 @@
|
|||||||
|
|
||||||
## Команды
|
## Команды
|
||||||
|
|
||||||
Проиграть день — раздел [«Как позвать
|
Проиграть день — раздел [«Как запустить
|
||||||
генератор»](../docs/architecture/world.md#как-позвать-генератор) справочника
|
генератор»](../docs/architecture/world.md#как-запустить-генератор)
|
||||||
мира и `--help`.
|
справочника мира и `--help`.
|
||||||
|
|
||||||
Из этого каталога — цели генератора живут здесь, а не в корне:
|
Из этого каталога — цели генератора живут здесь, а не в корне:
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user