Skip to content

dementev-dev/mini-lakehouse-lab

Repository files navigation

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. Никаких облаков, внешних зависимостей и регистраций.

graph TB
    U[Student / engineer]

    subgraph Access
        J[JupyterLab<br/>notebooks / PySpark]
        Q[Trino UI / CLI<br/>ad hoc SQL]
    end

    subgraph Compute
        S[Spark cluster<br/>master + workers]
        T[Trino 478<br/>Iceberg connector]
    end

    subgraph Shared Services
        P[(PostgreSQL<br/>Iceberg JDBC catalog)]
        M[(MinIO<br/>S3-compatible)]
    end

    U --> J
    U --> Q
    J --> S
    Q --> T
    S --> P
    S --> M
    T --> P
    T --> M
Loading
Компонент Роль в стенде
MinIO Storage — хранит данные и служебные файлы Iceberg
PostgreSQL Catalog — метаданные JDBC-каталога lakehouse
Spark Compute — ETL, запись и чтение Iceberg-таблиц
Trino Compute — ad hoc SQL, чтение тех же таблиц
JupyterLab Точка входа — практические ноутбуки курса

С чего начать

  1. Открой START_HERE.md — запуск стенда, диагностика, первый ноутбук.
  2. Пройди notebooks/01_environment_and_smoke_test.ipynb.
  3. Дальше по порядку: docs/course_program.md.

Краткий запуск из корня репозитория:

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 — первый маршрут: prerequisites, запуск, диагностика.
  • docs/course_program.md — модульная структура и состав учебных материалов.
  • docs/stack_reference.md — порты, команды, конфиги, шпаргалка.
  • docs/glossary.md — справочник терминов (storage, catalog, compute, snapshot и др.).

Менторство

Курс рассчитан на самостоятельное прохождение, но если хочешь разобрать темы глубже с ментором по Data Engineering — напиши: @dementev_dev.

Лицензия

Материалы этого репозитория лицензированы на условиях Creative Commons Attribution 4.0 International (CC BY 4.0). См. LICENSE.

About

Учебный Lakehouse-стенд (Trino + Spark + Iceberg + MinIO)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors