- Зачем:
- профильные доки отстали от реализации: схема 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-валидатором.
4.7 KiB
4.7 KiB
Repo Map
Карта ключевых артефактов репозитория.
Исполняемые файлы
Airflow (основной путь запуска)
airflow/dags/ddl_init_dag.py— инициализация схемы ClickHouseairflow/dags/kafka_load_dag.py— загрузка в Kafka из JSONLairflow/dags/etl_pipeline_dag.py— ETL процесс STG -> ODS -> DDS -> DMairflow/dags/utils/kafka_helpers.py— helper-функции для Kafkaairflow/dags/utils/sql_helpers.py— чтение и подготовка SQL-файлов для DAGairflow/dags/utils/airflow_params.py— разбор и валидация параметров DAGairflow/requirements.txt— зависимости Airflow/ClickHouse plugin
SQL
DDL (форма таблиц):
sql/ddl/00_databases.sql— создание БДstg/ods/dds/dmsql/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— применение DDLscripts/load_kafka_data.sh— загрузка в Kafkascripts/run_batch.sh— batch-процесс
Данные и конфиги
data/*.jsonl— исходные данные (могут быть грязными)configs/— конфиги ClickHouse, Prometheus, Grafanaconfigs/prometheus.yml— конфигурация Prometheus (scrape targets для ClickHouse, Kafka, Airflow)configs/statsd_mapping.yml— маппинг StatsD → Prometheus метрик для Airflowconfigs/default_user.xml— пользователь ClickHouse (default/123456)configs/prometheus_ch.xml— встроенный Prometheus endpoint ClickHouseconfigs/grafana/provisioning/alerting/clickhouse-alert-rules.yml— правила алертинга Grafana для ClickHouseconfigs/grafana/provisioning/alerting/kafka-alert-rules.yml— правила алертинга Grafana для Kafkaconfigs/grafana/provisioning/alerting/airflow-alert-rules.yml— правила алертинга Grafana для Airflowconfigs/grafana/provisioning/dashboards/clickhouse-overview.json— дашборд ClickHouseconfigs/grafana/provisioning/dashboards/kafka-overview.json— дашборд Kafkaconfigs/grafana/provisioning/dashboards/airflow-overview.json— дашборд Airflow
Документация
README.md— быстрый старт и обзор проектаdocs/ARCHITECTURE.md— техническая архитектураdocs/OPERATIONS.md— запуск, проверки, troubleshootingdocs/SUPERSET_DASHBOARD.md— настройка и использование дашборда Supersetdocs/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— ранний runbookplans/kafka_ingest_plan.md— ранний план Kafka ingestplans/monitoring_airflow_plan.md— план подключения Airflow мониторингаplans/monitoring_kafka_plan.md— план подключения Kafka мониторинга