Files
mini-lakehouse-lab/docs/PRD_Course.md
T
ddadmin 9d855c9b58 feat(docs): добавлены PRD и программа обучения для курса по Lakehouse
- Зачем:
  - Формализовать цели, аудиторию и структуру учебного курса для плавного погружения джунов в Lakehouse-архитектуру.
- Что:
  - Создан docs/PRD_Course.md с описанием JTBD, "Aha-moments" и метрик успеха.
  - Создан docs/COURSE_PLAN.md с детальной программой из 10 интерактивных уроков.
- Проверка:
  - Файлы присутствуют в директории docs и корректно ссылаются друг на друга.
2026-03-06 21:06:46 +03:00

59 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Product Requirements Document (PRD): Учебный курс «Введение в Lakehouse»
## 1. Product Vision & Value Proposition
**Видение:** Создать интерактивный практический курс, который "сломает" привычную картину мира монолитных баз данных (PostgreSQL/Greenplum) и плавно перестроит мышление студентов на парадигму распределенных систем (Lakehouse).
**Ценность:** Дать безопасную, наглядную "песочницу" для старта работы с современным Lakehouse, чтобы переход от классических БД к связке S3 + Iceberg + Spark/Trino прошел легко, предсказуемо и с минимальным трением.
## 2. Target Audience (Целевая аудитория)
* **Кто:** Junior Data Engineers, менти, студенты.
* **Их текущая картина мира:** Привыкли к классическим СУБД. Для них база данных — это единый "черный ящик", где движок вычислений (Compute) и жесткие диски (Storage) неразделимы, строго реляционны и транзакционны.
* **Бэкграунд:** Уверенно пишут SQL, знают Python, понимают классические слои DWH (Raw, ODS, DDS), умеют работать с Docker.
## 3. Problem Statement & Jobs-To-Be-Done (JTBD)
**Ключевая проблема:**
Когнитивный диссонанс при столкновении с Big Data и Lakehouse. Студенты не понимают, как набор Parquet-файлов в папках (S3) может быть "базой данных", зачем нужен отдельный каталог метаданных (Iceberg/Hive) и почему для записи мы используем один инструмент (Spark), а для чтения — другой (Trino). У них нет четкой ментальной модели распределенных систем.
**Jobs-To-Be-Done (JTBD):**
* *Основной JTBD:* «Когда я перехожу на новый проект или получаю задачу, связанную с Lakehouse, я хочу **быстро понять общую архитектуру и влиться в работу с минимальным трением**, чтобы не чувствовать себя слепым котенком и не сломать прод из-за непонимания распределенной природы данных».
* *Вторичный JTBD:* «Я хочу получить практический обзор современных технологий (Spark, Iceberg, Trino), чтобы уверенно отвечать на вопросы на собеседованиях и расширить свой кругозор за пределы PostgreSQL».
## 4. Ключевые "Aha-Moments" (Моменты озарения)
Курс должен быть спроектирован так, чтобы студент через практику испытал следующие инсайты:
1. **Storage is Just Files:** «Ого, таблица в Lakehouse — это просто набор Parquet-файлов в бакете MinIO!»
2. **Decoupled Compute:** «Вау, я могу писать данные Spark'ом, а читать Trino, и они оба смотрят на одни и те же файлы без их копирования!»
3. **The Magic of Metadata:** «Так вот зачем нужен Iceberg! Это просто умный JSON-манифест, который говорит движкам, какие именно файлы читать для Time Travel или партиционирования».
## 5. Метрики Успеха и Формат (Goals & Success Metrics)
**Цели продукта:**
1. Студент может пройти курс от начала до конца за **~12 часов** вдумчивой работы в браузере (Jupyter + MinIO UI + Trino UI).
2. Студент может своими словами (на собеседовании или коллегам) объяснить архитектуру Lakehouse (Storage, Compute, Catalog) и зачем нужен табличный формат (Iceberg).
3. Студент умеет самостоятельно реализовать базовый пайплайн (чтение, трансформация, запись) в парадигме Lakehouse.
**User Experience / Flow (Пользовательский опыт):**
Подход **«50/50 (Теория + Самостоятельная практика)»**. Ноутбуки предоставляют теорию, демистифицирующую Lakehouse (нацеленную на вызов "Aha-Moments"), примеры кода (50%) и заготовки ячеек. Студент изучает пример, а затем самостоятельно дописывает код для решения задачи, закрепляя новые концепции на практике. Финал курса — самостоятельный сквозной мини-пайплайн.
---
## 6. Содержание (Scope)
Ориентировочная программа на 10 интерактивных уроков (Jupyter Notebooks) вынесена в отдельный документ: **[COURSE_PLAN.md](./COURSE_PLAN.md)**.
---
## 7. Технические Требования и Ограничения
**Technical Requirements (В скоупе)**
* Использование существующего `docker-compose.yml` (Spark, Trino, MinIO, PostgreSQL, Jupyter).
* Установка дополнительных библиотек в образ Jupyter (например, `trino-python-client`), чтобы студенты могли выполнять запросы к Trino прямо из ноутбука.
* Подготовка небольших, но реалистичных датасетов (CSV/JSON) в папке репозитория.
**Out of Scope (Вне скоупа / На будущее)**
* Оркестрация пайплайнов (Airflow, Dagster).
* Развертывание в Kubernetes / Облаках.
* Тюнинг производительности Spark на больших объемах данных.