Files
clickstream-ch-kafka-supers…/docs/REPO_MAP.md
T
ddadmin 92e9c4b45a docs(accuracy): профильная документация выверена по коду
- Зачем:
  - профильные доки отстали от реализации: схема ods.*_errors, DQ-split и
    сборка dds.event описывались неверно, ряд артефактов и параметров отсутствовал.
    Канон по этим темам де-факто задают свежие уроки 2–3 курса.
- Что:
  - ARCHITECTURE: ods.*_errors как копия с Kafka-метаданными+raw+error_reason;
    DQ-split подан как пересекающийся; dds.event — browser-driven LEFT JOIN с
    маркером location_not_found; добавлен перечень DQ-маркеров; уточнены
    dq_summary (слой dm, orphan_events) и v_session_overview.
  - REPO_MAP: добавлен sql/ods/20_stg_to_ods.sql, утилиты DAG, скрипты Superset;
    scripts/make помечены как запасной путь, Airflow — основной.
  - OPERATIONS: параметр wait_stg_timeout_sec; порт Superset и креды ClickHouse.
  - SUPERSET_DASHBOARD: исправлен пароль ClickHouse (123456); убран сломанный
    make superset-export, удалён superset/export_dashboard.py и target в Makefile.
- Проверка:
  - git diff проверен против sql/*, airflow/dags/*, configs/default_user.xml;
    ER-диаграмма провалидирована mermaid-валидатором.
2026-06-06 21:43:31 +03:00

4.7 KiB

Repo Map

Карта ключевых артефактов репозитория.

Исполняемые файлы

Airflow (основной путь запуска)

  • airflow/dags/ddl_init_dag.py — инициализация схемы ClickHouse
  • 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
  • airflow/dags/utils/sql_helpers.py — чтение и подготовка SQL-файлов для DAG
  • airflow/dags/utils/airflow_params.py — разбор и валидация параметров DAG
  • airflow/requirements.txt — зависимости Airflow/ClickHouse plugin

SQL

DDL (форма таблиц):

  • sql/ddl/00_databases.sql — создание БД stg/ods/dds/dm
  • sql/ddl/stg/10_stg.sql — STG (Kafka Engine + MV)
  • sql/ddl/ods/20_ods.sql — ODS: типизированные таблицы и *_errors (наполняются batch, не MV)
  • sql/ddl/dds/30_dds.sql — DDS (таблицы для batch-загрузки)
  • sql/ddl/dm/40_dm.sql — DM (витрины VIEW)

Трансформации (наполнение, шаги etl_pipeline):

  • sql/ods/20_stg_to_ods.sql — STG -> ODS: типизация + DQ-split (валидный ключ → ods.*, любая ошибка → ods.*_errors)
  • sql/dds/30_ods_to_dds.sql — ODS -> DDS (argMax + LEFT JOIN)
  • sql/dm/40_dds_to_dm.sql — DDS -> DM: пересборка dm.dq_summary (TRUNCATE+INSERT) по всем слоям; сами витрины dm.v_* — это VIEW из DDL

Superset

  • superset/init_superset.py — подключение к ClickHouse + создание датасетов
  • superset/create_dashboard.py — сборка дашборда с чартами

Скрипты (запасной путь, не основной)

Shell-скрипты scripts/* (и обёртки make ddl/make data/make transform) — это локальный fallback в обход Airflow. Основной путь запуска — DAG-и Airflow (см. выше).

  • scripts/apply_clickhouse_ddl.sh — применение DDL
  • scripts/load_kafka_data.sh — загрузка в Kafka
  • scripts/run_batch.sh — batch-процесс

Данные и конфиги

  • data/*.jsonl — исходные данные (могут быть грязными)
  • configs/ — конфиги ClickHouse, Prometheus, Grafana
  • configs/prometheus.yml — конфигурация Prometheus (scrape targets для ClickHouse, Kafka, Airflow)
  • configs/statsd_mapping.yml — маппинг StatsD → Prometheus метрик для Airflow
  • configs/default_user.xml — пользователь ClickHouse (default/123456)
  • configs/prometheus_ch.xml — встроенный Prometheus endpoint ClickHouse
  • configs/grafana/provisioning/alerting/clickhouse-alert-rules.yml — правила алертинга Grafana для ClickHouse
  • configs/grafana/provisioning/alerting/kafka-alert-rules.yml — правила алертинга Grafana для Kafka
  • configs/grafana/provisioning/alerting/airflow-alert-rules.yml — правила алертинга Grafana для Airflow
  • configs/grafana/provisioning/dashboards/clickhouse-overview.json — дашборд ClickHouse
  • configs/grafana/provisioning/dashboards/kafka-overview.json — дашборд Kafka
  • configs/grafana/provisioning/dashboards/airflow-overview.json — дашборд Airflow

Документация

  • README.md — быстрый старт и обзор проекта
  • docs/ARCHITECTURE.md — техническая архитектура
  • docs/OPERATIONS.md — запуск, проверки, troubleshooting
  • docs/SUPERSET_DASHBOARD.md — настройка и использование дашборда Superset
  • docs/DE-task.md — исходное задание
  • docs/COMMIT_RULES.md — правила коммитов
  • docs/course/ — продвинутый учебный курс на базе стенда (PRD, план, уроки)
  • docs/adr/ — архитектурные решения (ADR)
  • docs/agents/ — контракты для агентских скиллов (issue-tracker, triage, domain)

Legacy-планы

  • plans/clickhouse_ddl.md — исходный план (inline DDL)
  • plans/runbook.md — ранний runbook
  • plans/kafka_ingest_plan.md — ранний план Kafka ingest
  • plans/monitoring_airflow_plan.md — план подключения Airflow мониторинга
  • plans/monitoring_kafka_plan.md — план подключения Kafka мониторинга