# DE-task: краткое ТЗ проекта

Дата актуализации: 14 февраля 2026.

## Цель

Собрать учебный DE-стенд, который показывает полный путь данных:
`Kafka -> ClickHouse (STG/ODS/DDS/DM) -> BI`, с устойчивой обработкой "грязных" данных и понятной наблюдаемостью.

## Что нужно сделать

- Развернуть стек в `docker compose`: Kafka, ClickHouse, Airflow, Superset, Prometheus, Grafana.
- Организовать ingest в Kafka в двух режимах:
  - `bootstrap`: загрузка JSONL через Airflow DAG `kafka_load`;
  - `steady-stream`: автономный генератор, работающий независимо от потребителей.
- Построить слои хранилища `STG -> ODS -> DDS -> DM` в ClickHouse.
- Настроить регулярные трансформации в Airflow (`ddl_init`, `etl_pipeline`).
- Подготовить витрины и дашборд для первичного анализа.

## Ключевые требования

- "Грязные" записи не должны валить пайплайн: ошибки фиксируются в ODS/DQ-слое.
- Генератор работает отдельно от потребителей и Airflow-триггеров.
- Решение должно быть воспроизводимым и пригодным для учебной демонстрации.

## Границы MVP

- Один простой режим генератора (`steady-stream`) без сложных сценариев.
- Без production-гарантий уровня exactly-once.
- Фокус на рабочем end-to-end контуре, а не на полной симуляции реального продакшена.

## Критерии готовности

1. Стенд стабильно запускается и работает несколько часов.
2. Данные корректно проходят путь Kafka -> STG -> ODS -> DDS -> DM.
3. Поток событий в Kafka идёт постепенно малыми порциями, без искусственного минутного burst.
4. Есть базовый дашборд и метрики для разбора работы стенда.

## Где детали реализации

- Техническая архитектура: `docs/ARCHITECTURE.md`
- План по генератору: `plans/generator_demo_stream_plan.md`
- Эксплуатация и запуск: `docs/OPERATIONS.md`
