# Lakehouse без магии Практический курс, после которого ты будешь уверенно работать с Lakehouse-стеком: поднимать стенд, строить пайплайн `raw -> bronze -> silver`, читать одну таблицу из двух движков и не бояться изменений в данных. ## Что ты получишь После прохождения 8 модулей ты умеешь: 1. **Поднимать и диагностировать** локальный Lakehouse-стенд — не по инструкции, а с пониманием, что и зачем работает. 2. **Объяснять архитектуру** `storage + catalog + compute` — и видеть, как знакомые концепции из PostgreSQL/Greenplum ложатся на новый стек. 3. **Строить пайплайн** `raw -> bronze -> silver` на реальном датасете NYC Taxi — с проверками качества и воспроизводимостью. 4. **Работать с двумя движками** — записывать данные через Spark, читать через Trino, и понимать, почему это работает без копирования. 5. **Безопасно менять таблицы** — schema evolution, time travel, rollback к предыдущему состоянию вместо паники. 6. **Обслуживать таблицы** — compaction и expire_snapshots, с пониманием параллелей к VACUUM/REORGANIZE. Курс рассчитан на `~12-15 часов` самостоятельной работы. Каждый модуль: объяснение, демонстрация, самостоятельное задание, checkpoint. ## Стек Всё работает локально в Docker. Никаких облаков, внешних зависимостей и регистраций. ```mermaid graph TB U[Student / engineer] subgraph Access J[JupyterLab
notebooks / PySpark] Q[Trino UI / CLI
ad hoc SQL] end subgraph Compute S[Spark cluster
master + workers] T[Trino 478
Iceberg connector] end subgraph Shared Services P[(PostgreSQL
Iceberg JDBC catalog)] M[(MinIO
S3-compatible)] end U --> J U --> Q J --> S Q --> T S --> P S --> M T --> P T --> M ``` | Компонент | Роль в стенде | | --- | --- | | `MinIO` | Storage — хранит данные и служебные файлы Iceberg | | `PostgreSQL` | Catalog — метаданные JDBC-каталога `lakehouse` | | `Spark` | Compute — ETL, запись и чтение Iceberg-таблиц | | `Trino` | Compute — ad hoc SQL, чтение тех же таблиц | | `JupyterLab` | Точка входа — практические ноутбуки курса | ## С чего начать 1. Открой [START_HERE.md](./START_HERE.md) — запуск стенда, диагностика, первый ноутбук. 2. Пройди `notebooks/01_environment_and_smoke_test.ipynb`. 3. Дальше по порядку: [docs/course_program.md](./docs/course_program.md). Краткий запуск из корня репозитория: ```bash docker compose build docker compose up -d docker compose ps ``` После старта: | UI | Адрес | | --- | --- | | JupyterLab | `http://localhost:8888` | | Spark Master | `http://localhost:8080` | | Trino | `http://localhost:8090` | | MinIO Console | `http://localhost:9001` | ## Документы для прохождения - [START_HERE.md](./START_HERE.md) — первый маршрут: prerequisites, запуск, диагностика. - [docs/course_program.md](./docs/course_program.md) — модульная структура и состав учебных материалов. - [docs/stack_reference.md](./docs/stack_reference.md) — порты, команды, конфиги, шпаргалка. - [docs/glossary.md](./docs/glossary.md) — справочник терминов (storage, catalog, compute, snapshot и др.). ## Менторство Курс рассчитан на самостоятельное прохождение, но если хочешь разобрать темы глубже с ментором по Data Engineering — напиши: [@dementev_dev](https://t.me/dementev_dev). ## Лицензия Материалы этого репозитория лицензированы на условиях Creative Commons Attribution 4.0 International (`CC BY 4.0`). См. [LICENSE](./LICENSE).