docs(course): обновлены PRD и программа курса
- Зачем: - нужно выровнять учебную программу с PRD и явно отделить стартовый onboarding от практики в ноутбуках. - Что: - обновлены название курса и файл программы, а структура материалов пересобрана вокруг стартовой документации, 8 практических модулей и вспомогательных артефактов. - добавлены трассировка Learning Outcomes, hands-on упражнение для модуля 2 и уточнения по доставке учебного data bundle. - зафиксированы acceptance criteria, минимальный scope glossary и статус partitioning как legacy-темы вне обязательного трека v1. - Проверка: - просмотрен git diff HEAD~1 -- docs/course_prd.md docs/course_program.md. - проверен git diff --cached --stat перед amend.
This commit is contained in:
+28
-10
@@ -1,4 +1,4 @@
|
||||
# Product Requirements Document (PRD): Учебный курс «Введение в Lakehouse»
|
||||
# Product Requirements Document (PRD): Учебный курс «Lakehouse без магии»
|
||||
|
||||
## 1. Product Vision & Value Proposition
|
||||
|
||||
@@ -56,6 +56,8 @@
|
||||
6. Умеет читать одну и ту же таблицу из `Spark` и `Trino` и понимает, почему это возможно без копирования данных.
|
||||
7. Умеет выполнить базовые безопасные операции с таблицей: изменение схемы, просмотр snapshot-ов, чтение предыдущего состояния, базовый `compaction` и `vacuum`.
|
||||
|
||||
Трассировка этих outcomes на модули и checkpoints фиксируется в [course_program.md](./course_program.md).
|
||||
|
||||
## 6. Teaching Principles
|
||||
|
||||
**Принцип 1. Практика первична.** Курс не должен превращаться в обзорную лекцию. Теория нужна для объяснения того, что студент делает руками.
|
||||
@@ -93,9 +95,10 @@
|
||||
* базовое schema evolution;
|
||||
* snapshot/time travel на прикладном уровне;
|
||||
* базовый `compaction/vacuum` с параллелями к `Greenplum AppendOnly`;
|
||||
* набор практик в Jupyter Notebooks с обязательными заданиями и checkpoints.
|
||||
* набор практик в Jupyter Notebooks с обязательными заданиями и checkpoints;
|
||||
* стартовая документация до первого ноутбука: prerequisites, запуск стенда, вход в Jupyter и базовый troubleshooting.
|
||||
|
||||
Ориентировочная программа курса вынесена в отдельный документ: **[COURSE_PLAN.md](./COURSE_PLAN.md)**.
|
||||
Ориентировочная программа курса вынесена в отдельный документ: **[course_program.md](./course_program.md)**.
|
||||
|
||||
## 9. Dataset Strategy
|
||||
|
||||
@@ -115,6 +118,15 @@
|
||||
|
||||
**Методическое решение:** курс строится вокруг одного домена данных, но не требует жесткого сквозного проекта. Основной формат курса - набор связанных практик на одном и том же наборе данных.
|
||||
|
||||
**Механика доставки данных в v1:**
|
||||
|
||||
* raw-датасет не хранится в репозитории целиком;
|
||||
* стартовая документация должна давать воспроизводимый способ получить фиксированный учебный набор данных (`Default` или `Extended`) из публичного источника;
|
||||
* `Taxi Zone Lookup` доставляется тем же способом, что и основной датасет;
|
||||
* перед началом модуля про raw-данные студент должен иметь локальный data bundle на хосте;
|
||||
* в модуле про raw-ingest студент загружает уже полученные файлы в raw-зону `MinIO`, а не ищет и не скачивает данные вручную прямо из ноутбука;
|
||||
* ручная загрузка файлов через UI допускается только как fallback-сценарий, а не как основной путь прохождения.
|
||||
|
||||
## 10. User Experience / Learning Flow
|
||||
|
||||
Курс строится по модели **"объяснение -> демонстрация -> самостоятельное повторение -> checkpoint"**.
|
||||
@@ -128,18 +140,21 @@
|
||||
|
||||
**Формат прохождения:** желательно с ментором, но курс должен быть самодостаточным и для самостоятельного изучения.
|
||||
|
||||
## 11. Success Metrics & Acceptance Criteria
|
||||
## 11. Product Targets & Acceptance Criteria
|
||||
|
||||
**Цели продукта:**
|
||||
**Ориентиры продукта:**
|
||||
|
||||
Это целевые ориентиры курса, но не blocking acceptance criteria для материалов.
|
||||
|
||||
1. Студент проходит курс за `~12-15 часов` вдумчивой работы.
|
||||
2. Студент после курса способен безопасно выполнить базовые операции в Lakehouse-стенде без постоянной внешней помощи.
|
||||
3. Студент может внятно объяснить ключевые архитектурные принципы Lakehouse на уровне junior/middle interview readiness.
|
||||
|
||||
**Acceptance Criteria для учебного результата:**
|
||||
**Acceptance Criteria для учебных материалов и результата:**
|
||||
|
||||
1. Студент проходит обязательные `checkpoints` по урокам.
|
||||
2. Студент самостоятельно выполняет набор практик на одном датасете, включая:
|
||||
1. В составе курса есть стартовая документация до первого ноутбука, включая prerequisites, запуск стенда, вход в `Jupyter` и получение учебного data bundle.
|
||||
2. Студент проходит обязательные `checkpoints` по урокам.
|
||||
3. Студент самостоятельно выполняет набор практик на одном датасете, включая:
|
||||
* загрузку raw-данных;
|
||||
* построение `bronze`;
|
||||
* построение `silver`;
|
||||
@@ -148,7 +163,7 @@
|
||||
* демонстрацию базового schema evolution;
|
||||
* демонстрацию snapshot/time travel;
|
||||
* демонстрацию базового `compaction/vacuum`.
|
||||
3. Студент может своими словами объяснить:
|
||||
4. Студент может своими словами объяснить:
|
||||
* что такое `Lakehouse` и чем он отличается от классической БД;
|
||||
* как разделены `storage`, `catalog`, `compute`;
|
||||
* что такое `Iceberg` в практическом смысле;
|
||||
@@ -161,8 +176,10 @@
|
||||
|
||||
* использование существующего `docker-compose.yml` (`Spark`, `Trino`, `MinIO`, `PostgreSQL`, `Jupyter`);
|
||||
* подготовка учебных датасетов и/или инструкций по их загрузке в репозиторий;
|
||||
* наличие воспроизводимого способа получить учебный data bundle без ручного поиска по внешним сайтам;
|
||||
* поддержка выполнения запросов к `Trino` из ноутбуков;
|
||||
* подготовка Jupyter Notebooks как основного формата учебных материалов;
|
||||
* подготовка Jupyter Notebooks как основного формата практической части курса;
|
||||
* подготовка стартовой документации для входа в курс до первого запуска ноутбуков;
|
||||
* наличие воспроизводимых шагов для старта, сброса и повторного прохождения практик.
|
||||
|
||||
## 13. Out of Scope (v1)
|
||||
@@ -172,6 +189,7 @@
|
||||
* `gold`-слой и полноценные бизнес-витрины;
|
||||
* `Airflow`, `Kafka`, `NiFi`, `streaming`, `CDC`;
|
||||
* сложные `MERGE`-сценарии, row-level deletes и update-heavy кейсы;
|
||||
* партиционирование и `partition pruning` как отдельная учебная тема первой версии;
|
||||
* глубокий performance tuning;
|
||||
* production security, governance, multi-user setup;
|
||||
* Kubernetes / облачное развертывание;
|
||||
|
||||
Reference in New Issue
Block a user