- Зачем: - убрать рассинхрон между кратким ТЗ, архитектурой и планом генератора - Что: - сокращен docs/DE-task.md до формата краткого ТЗ проекта - обновлены docs/ARCHITECTURE.md и README.md: bootstrap через kafka_load и steady-stream через generator-service - обновлен plans/generator_demo_stream_plan.md: режим steady-stream и тик-публикация - Проверка: - просмотрен git diff по измененным файлам - в коммит включены только мои документационные изменения
44 lines
2.6 KiB
Markdown
44 lines
2.6 KiB
Markdown
# 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`
|