docs(course): каркас курса и переобвязка уроков 0–6 на путь import (#21)
Зачем: после редизайна пути менти курс ссылался на старый путь generated-history-analytics/backfill и не проходился по новому стенду. Что: в README курса — единый блок подготовки и канонического сброса (make clean -> make up + ddl_init/world_init -> make superset-init), таблица уроков дополнена лабами 07–08 («в работе»); LESSON_STANDARD и уроки 0–6 ссылаются на канонический блок; урок 1 переведён на дозаливку через world_next_day (кнопкой-анонсом, цена в минутах названа); урок 4 — лесенка DAG-ов; урок 5 — словарь «база import / живой поток»; урок 6 обязателен; цифры старого мира помечены маркером «сверить-на-стенде». Проверка: grep по generated-history-analytics/backfill в docs/course/ пуст; правки только в docs/course/; git diff --check чистый. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -57,24 +57,10 @@
|
||||
|
||||
## 2. Руки: открываем дашборды и targets
|
||||
|
||||
Подними стенд и создай стартовую историю, если он ещё не поднят. Это штатный путь курса:
|
||||
готовый источник данных стенда пишет события в Kafka, ClickHouse читает их в STG, затем
|
||||
batch строит ODS, DDS и DM. Файлы `data/*.jsonl` пока остаются только кладовкой значений
|
||||
для этого источника, а не источником аналитического контура.
|
||||
|
||||
```bash
|
||||
make generated-history-analytics
|
||||
make up
|
||||
```
|
||||
|
||||
Учти: путь `generated-history-analytics` собирает витрины напрямую, без запуска
|
||||
`etl_pipeline`, поэтому панели про задачи Airflow в `Airflow Overview` останутся
|
||||
пустыми, пока ты хотя бы раз не запустишь `etl_pipeline` сам (это делалось в
|
||||
уроке 4). Запустить его можно в Airflow с конфигом:
|
||||
|
||||
```json
|
||||
{"full_refresh": true}
|
||||
```
|
||||
Подготовь стенд по
|
||||
[канонической инструкции курса](../README.md#подготовка-и-канонический-сброс).
|
||||
После успешного `world_init` эталонный мир уже прошёл путь Kafka → STG → ODS → DDS → DM,
|
||||
а в Airflow есть завершённый прогон `etl_pipeline`.
|
||||
|
||||
Нам нужны не идеальные объёмы, а живой стенд, в котором есть Kafka-топики, строки в ClickHouse
|
||||
и хотя бы один прогон Airflow.
|
||||
@@ -92,10 +78,10 @@ make up
|
||||
| `airflow` | `statsd-exporter:9102` | `statsd-exporter` отдаёт метрики Airflow в формате Prometheus |
|
||||
| `generator` | `generator:9109` | live-генератор отдаёт свои метрики, только когда явно запущен |
|
||||
|
||||
У `clickhouse`, `kafka` и `airflow` состояние должно быть `UP`. `generator` на штатном
|
||||
backfill-only стенде может быть `DOWN`, потому что `make up` не запускает live-генератор.
|
||||
Это нормально для курса до явного `make generator-continue`. Если один из трёх основных
|
||||
target `DOWN`, Grafana дальше будет показывать `No data` или старые значения.
|
||||
У `clickhouse`, `kafka` и `airflow` состояние должно быть `UP`. `generator` на базе
|
||||
импортированного мира может быть `DOWN`: живой поток включается отдельно через
|
||||
`make generator-continue`. Если один из трёх основных target `DOWN`, Grafana дальше
|
||||
будет показывать `No data` или старые значения.
|
||||
|
||||
То же можно проверить из терминала:
|
||||
|
||||
@@ -125,7 +111,7 @@ curl -s http://localhost:9090/api/v1/targets | grep -o '"health":"[^"]*"'
|
||||
- `ClickHouse Overview`;
|
||||
- `Kafka Overview`;
|
||||
- `Airflow Overview`;
|
||||
- `Generator Overview` — про live-генератор; на backfill-only стенде он пуст,
|
||||
- `Generator Overview` — про живой поток; на базе импортированного мира он пуст,
|
||||
как и target `generator` выше, и в этом уроке не понадобится.
|
||||
|
||||
Открой каждый и смотри не на красоту графиков, а на смысл: какой слой стенда он показывает и
|
||||
@@ -272,11 +258,11 @@ Grafana.
|
||||
| Airflow Alerts | `High Task Failure Rate` | растёт rate failed tasks |
|
||||
| Airflow Alerts | `High DAG Parse Time` | DAG-файлы долго парсятся |
|
||||
|
||||
Не все эти правила обязаны быть тихими в учебном стенде. По умолчанию `make up` и
|
||||
`make generated-history-analytics` **не запускают live-генератор**, поэтому после готовой
|
||||
стартовой истории новые сообщения перестают приходить. Из-за этого `Kafka No Messages Produced`
|
||||
может перейти в `Alerting` на полностью здоровом backfill-only стенде. Если хочешь проверить
|
||||
это правило в спокойном состоянии, явно включи live:
|
||||
Не все эти правила обязаны быть тихими в учебном стенде. После импорта эталонной базы
|
||||
живой поток не запущен, поэтому новые сообщения не приходят. Из-за этого
|
||||
`Kafka No Messages Produced` может перейти в `Alerting` на полностью здоровом стенде:
|
||||
алерт честно говорит, что потока сейчас нет, а не что импорт сломан. Если хочешь
|
||||
проверить правило в спокойном состоянии, явно включи живой поток:
|
||||
|
||||
```bash
|
||||
make generator-continue
|
||||
|
||||
Reference in New Issue
Block a user