docs: ARCHITECTURE и REPO_MAP догнали ветку генератора

- Зачем:
  - перед слиянием в main документация должна совпадать с кодом:
    ARCHITECTURE.md и REPO_MAP.md не знали про операцию next-day,
    каталог generator/ и семь новых скриптов.
- Что:
  - в ARCHITECTURE.md операция next-day добавлена в описание DAG
    generator_control (три места).
  - в REPO_MAP.md добавлены раздел Generator и семь скриптов
    стартовой истории; описание generator_control дополнено.
- Проверка:
  - make lint — зелёный; сверка списков с airflow/dags и scripts/.
This commit is contained in:
2026-07-19 22:21:21 +03:00
parent bec56da1c3
commit fc3cf5bbc3
2 changed files with 17 additions and 3 deletions
+3 -2
View File
@@ -71,7 +71,7 @@ flowchart LR
В учебном стенде предусмотрены два пути загрузки:
- `startup-history`: DAG `generator_control` создаёт или импортирует историю, запускает ETL и проверяет витрины;
- `startup-history`: DAG `generator_control` создаёт или импортирует историю, добавляет следующий модельный день, запускает ETL и проверяет витрины;
- `live`: генератор запускается явно через `make generator-continue`, когда нужна непрерывная подача новых событий.
### Слои и их назначение
@@ -637,7 +637,7 @@ INSERT INTO dm.daily_traffic SELECT * FROM dm.v_daily_traffic;
```python
# airflow/dags/ddl_init_dag.py — создание баз/таблиц
# airflow/dags/generator_control_dag.py — backfill/import/check стартовой истории
# airflow/dags/generator_control_dag.py — backfill/import/next-day/check стартовой истории
# airflow/dags/etl_pipeline_dag.py — основной ETL (STG→ODS→DDS→DM)
# airflow/dags/kafka_load_dag.py — архивный ручной путь из JSONL, не основной контур
@@ -657,6 +657,7 @@ INSERT INTO dm.daily_traffic SELECT * FROM dm.v_daily_traffic;
**DAG `generator_control`**:
- `backfill`: создаёт стартовую историю через генератор
- `import`: импортирует портативный артефакт стартовой истории
- `next-day`: пакетно добавляет следующий модельный день от текущего слепка мира
- `check`: сверяет ClickHouse с manifest стартовой истории
- После `backfill` и `import` запускает `etl_pipeline` с `full_refresh`
+14 -1
View File
@@ -7,7 +7,7 @@
### Airflow (ручной и учебный путь запуска)
- `airflow/dags/ddl_init_dag.py` — инициализация схемы ClickHouse
- `airflow/dags/generator_control_dag.py` — Airflow-пульт стартовой истории: backfill/import/check
- `airflow/dags/generator_control_dag.py` — Airflow-пульт стартовой истории: backfill/import/next-day/check
- `airflow/dags/kafka_load_dag.py` — архивная загрузка в Kafka из JSONL; не основной источник аналитики
- `airflow/dags/etl_pipeline_dag.py` — ETL процесс STG -> ODS -> DDS -> DM
- `airflow/dags/utils/kafka_helpers.py` — helper-функции для Kafka
@@ -15,6 +15,12 @@
- `airflow/dags/utils/airflow_params.py` — разбор и валидация параметров DAG
- `airflow/requirements.txt` — зависимости Airflow/ClickHouse plugin
### Generator
- `generator/src/clickstream_generator/` — исходники генератора кликстрима (модельное время, состояние мира, запись в Kafka)
- `generator/tests/` — тесты генератора
- `generator/Dockerfile` — образ generator-service
### SQL
DDL (форма таблиц):
@@ -46,6 +52,13 @@ Shell-скрипты `scripts/*` и Makefile-обёртки дают повто
- `scripts/run_batch.sh` — batch-процесс
- `scripts/run_generated_history_analytics.sh` — чистый прогон стартовой истории до DM и Superset
- `scripts/check_generated_analytics.sh` — проверка DM-витрин и Superset metadata на данных генерации
- `scripts/run_generator.sh` — запуск генератора через понятные глаголы (backfill/continue/reset) поверх старых env-переменных
- `scripts/assert_stand_clean.sh` — проверка, что новый мир генератора не смешается со старым
- `scripts/export_startup_history_artifact.sh` — экспорт стартовой истории в портативный JSON-артефакт
- `scripts/import_startup_history_artifact.sh` — импорт портативного артефакта стартовой истории в Kafka
- `scripts/check_startup_history_manifest.sh` — сверка DM-витрины ClickHouse с manifest портативной стартовой истории
- `scripts/check_generated_history_chain.sh` — проверка завершённых стыков между порциями модельной истории
- `scripts/run_generated_history_runtime_check.sh` — runtime-проверка, что daily-wave доходит до manifest/check, а live-продолжение пишет стык backfill/live
## Данные и конфиги