Files
clickstream-ch-kafka-supers…/plans/runbook.md
T
ddadmin 0b75da9c08 docs(docs): align docs with airflow-first ingest workflow
- Why:\n  - User-facing docs mixed Airflow and legacy CLI ingest paths and caused confusion\n- What:\n  - Rework README quick start and status to use DAG chain ddl_init -> kafka_load -> etl_pipeline\n  - Rewrite runbook as canonical Airflow-first execution flow\n  - Sync architecture diagrams/sequence and DQ wording with current SQL and DAG behavior\n- Check:\n  - Verified updated sections and removed stale markers with rg in README.md, docs/ARCHITECTURE.md, plans/runbook.md
2026-02-08 18:52:44 +03:00

3.3 KiB

Runbook: Airflow-first запуск демо

Документ фиксирует канонический пользовательский сценарий через Airflow DAG'и. Внутренности слоёв ClickHouse описаны в plans/clickhouse_ddl.md и docs/ARCHITECTURE.md.

Предпосылки

  • Docker + Docker Compose.
  • Доступ к Docker daemon.

Канонический сценарий (через Airflow)

  1. Поднять инфраструктуру:
make up
docker compose ps
  1. Инициализировать схему ClickHouse:
docker compose exec -T airflow-webserver airflow dags trigger ddl_init
  1. Загрузить данные в Kafka через DAG kafka_load:
# Рекомендуется для демо: небольшой срез
docker compose exec -T airflow-webserver airflow dags trigger kafka_load \
  --conf '{"limit": 50, "reset_topics": true}'

# Полная загрузка (limit=0 по умолчанию)
docker compose exec -T airflow-webserver airflow dags trigger kafka_load \
  --conf '{"reset_topics": true}'
  1. Запустить ETL:
docker compose exec -T airflow-webserver airflow dags trigger etl_pipeline \
  --conf '{"full_refresh": true}'
  1. Проверить результат:
docker compose exec -T clickhouse clickhouse-client --user=default --password=123456 \
  --query "SELECT count() FROM stg.browser_raw"
docker compose exec -T clickhouse clickhouse-client --user=default --password=123456 \
  --query "SELECT count() FROM ods.browser_event"
docker compose exec -T clickhouse clickhouse-client --user=default --password=123456 \
  --query "SELECT count() FROM dds.event"
docker compose exec -T clickhouse clickhouse-client --user=default --password=123456 \
  --query "SELECT * FROM dm.dq_summary ORDER BY layer, table_name, check_name"

Параметры DAG'ов

  • ddl_init:
    • verify_only (bool, default: false) — только проверка схемы, без применения DDL.
  • kafka_load:
    • limit (int, default: 0) — количество строк на поток (0 = весь файл).
    • reset_topics (bool, default: true) — удалить и создать топики заново.
  • etl_pipeline:
    • full_refresh (bool, default: true) — очищать DDS перед загрузкой.
    • wait_stg_timeout_sec (int, default: 600) — таймаут ожидания данных в STG.

Роль Make-таргетов

  • make up — основной способ поднять стек.
  • make ddl, make transform — технический fallback для низкоуровневой диагностики вне Airflow.
  • Загрузка в Kafka в runbook выполняется только через DAG kafka_load.

Важные примечания

  • Для связей контейнеров используйте kafka:29092 (не localhost:9092).
  • После docker compose down -v нужно заново выполнить:
    1. ddl_init
    2. kafka_load
    3. etl_pipeline

Связанные документы

  • План ingest: plans/kafka_ingest_plan.md
  • План DAG'ов: plans/airflow_dags_plan.md
  • Архитектура: docs/ARCHITECTURE.md