Files
mini-lakehouse-lab/README.md
T
ddadmin 2e961fd0c7 fix(minio): восстановлена загрузка образов
- Зачем: зафиксированные теги больше не доступны в Docker Hub для чистой установки.
- Что: MinIO Server и mc переведены на официальный Quay с сохранением версий; документация синхронизирована.
- Проверка: docker compose config; docker compose pull minio minio-init; docker compose up -d; MinIO live, init, Trino и Jupyter API.
2026-09-14 14:32:31 -04:00

5.3 KiB
Executable File
Raw Blame History

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
Компонент Роль в стенде
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

Зафиксированные исторические образы MinIO загружаются из официального Quay registry; подробности — в техническом reference.

После старта:

UI Адрес
JupyterLab http://localhost:8888
Spark Master http://localhost:8080
Trino http://localhost:8090
MinIO Console http://localhost:9001

JupyterLab опубликован только на loopback-интерфейсе хоста и рассчитан на локальный одно-пользовательский стенд. Подключение через VS Code Remote-SSH описано в START_HERE.md.

Документы для прохождения

  • 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.