Lakehouse для аналитиков и инженеров данных — Повтор
О чём курс
Алексей Белозерский разбирает принципы построения аналитической архитектуры Lakehouse с разделением слоёв хранения данных на базе S3 и Iceberg и вычислительных ресурсов на базе Trino в среде Kubernetes. Практические задания направлены на развёртывание компонентов стека, настройку взаимодействия между каталогом метаданных, хранилищем и аналитическим движком, а также на построение гибридных пайплайнов обработки информации с помощью SQL, Python и Spark.
Архитектура и задачи
В курсе рассматривается переход от традиционных корпоративных хранилищ данных (DWH) и озёр данных (Data Lake) к концепции Lakehouse. Вы разберёте, как устроено независимое масштабирование вычислений и хранилища, за счёт чего работают транзакции поверх объектного хранилища S3 и как решаются типовые проблемы раздельного вычислительного движка. По словам автора, архитектура позволяет освоить масштабирование до ста раз без смены парадигм и технологий.
Практическая часть включает работу с форматами Parquet и табличным форматом Iceberg. Автор объясняет внутреннее устройство Iceberg: манифесты, снимки состояния (снапшоты), дельты и файлы метаданных. Отдельное внимание уделено серверам метаданных — каталогам Iceberg Catalog с реализациями на базе JDBC, Hive Metastore (HMS) и REST, а также механизмам эволюции схемы данных и очистки устаревших файлов.
Что внутри
Программа выстроена вокруг прикладных инженерных сценариев:
- Развёртывание каталога Iceberg Catalog JDBC и настройка объектного хранилища S3.
- Запуск кластера Trino over Kubernetes и подключение к нему через DBeaver.
- Создание датасетов, запись и чтение данных с использованием SQL и библиотеки PyIceberg на Python.
- Анализ метрик тяжёлых аналитических запросов на примере бенчмарка TPC-DS через веб-интерфейс Trino UI.
- Интеграция DBT для управления моделями, тестами и снимками данных в связке с Trino.
- Настройка оркестрации пайплайнов в Apache Airflow совместно с моделями DBT и предиктами машинного обучения.
- Реализация процедур обслуживания таблиц Iceberg: управление конкурентным доступом по модели MVCC, сбор статистики и запуск регламентных процедур поддержки по триггерам или порогу.
В качестве дополнительных тем рассматриваются альтернативные реализации и движки (Paimon, Duck Lake, Apache Doris, StarRocks, ClickHouse 25.x с движком Iceberg Engine), потоковая обработка через Kafka и Spark Streaming, а также механизм Time Travel.
Для кого
Курс рассчитан на специалистов, работающих с аналитической инфраструктурой:
- аналитиков данных;
- инженеров данных;
- ML-инженеров.
Формат
Обучение длится 6 недель и включает еженедельные встречи в Zoom. Предусмотрены живые лекции с экспертом и видеозаписи занятий.
Программа обучения
Занятие 1. Lakehouse, Iceberg, разделение Compute и Storage Краткая история развития аналитических систем. Корпоративное хранилище данных (DWH) и Озеро данных (Data Lake). Истоки и концепция. Преимущества и недостатки каждого подхода. Развитие и коммодитизация технологий масштабируемого хранения на S3 и запуска приложений на Kubernetes. Lakehouse: концепция и преимущества. Формат Iceberg: Предпосылки возникновения, ограничения S3, S3-native формат для больших данных, транзакции поверх неатомарного S3. Сохраняем данные в Iceberg + S3 и изучаем формат данных. Разделение Compute - Storage. Как работает разделенный движок. Какие проблемы могут быть и как их решать. Занятие 2. Структура формата Iceberg. Формат Parquet Как управлять большим объемом данных. Что будет если накопить 100K и больше файлов за много лет? Что если со временем схема данных меняется, а часть строк вдруг надо удалить? Под капотом у формата Iceberg: Delta, Manifest, Snapshot, метаданные. Iceberg Catalog. Для чего нужен отдельный сервер метаданных. Какие реализации каталога бывают: HMS, JDBC, REST. Практика. Выгрузить из S3 таблицу в формате Iceberg. Изучить данные и метаданные. Занятие 3. Практика Поднимаем Iceberg Catalog JDBC, настраиваем хранение данных в S3. Поднимаем кластер Trino. Настраиваем на работу с Iceberg Catalog. Подключаемся к Trino как к БД с помощью DBeaver. Делаем первыве датасеты. Читаем данные записанные из Trino с помощью Python с библиотекой PyIceberg. Изменяем данные с помощью PyIceberg, читаем результаты из Trino. Занятие 4. Метрики запросов в Trino Работаем с Trino + Iceberg как с БД. Пример датасета TPC-DS, пишем сложные ad- hoc запросы. Изучаем метрики тяжелых запросов с помощью Trino UI. Подключаем DBT для работы над пайплайнами. Краткий обзор фреймворка DBT. Подключение к работе с Trino. Настройка коннекта к Трино, старт проекта. DBT Models, Tests, Snapshots, Docs. DBT Selectors - для управления задачами в проекте. Подключаем Airflow для работы над пайплайнами. Знакомство с инструментом AIrflow. Airflow DAG + DBT - совместный репо. Занятие 5. Еще раз о формате Iceberg Что происходит в S3-Iceberg, когда мы добавляем, удаляем и меняем данные. Транзакции, ACID, MVCC, поддержка датасетов. Снапшоты Iceberg, как именно мы получаем атомарность и транзакции. Изоляция транзакций в Iceberg. Оптимистичная модель конкуренции. MVCC. Какую "уборку" требует датасет Iceberg. Виды операций по поддержке датасетов. Как получить статистику датасета в Iceberg. SQL, Trino. Python, PyIceberg. Занятие 6. Пайплайны и финальная Q&A-сессия Pipeline 1 - Airflow + DBT + PyIceberg over S3+Iceberg. Моделирование данных в SQL на DBT. Добавляем Pytnon - предикты ML. Pipeline 2 - Поддержка Iceberg Table. Собираем информацию для мониторинга. Запускаем процедуры поддержки по триггеру или порогу.Q&A. Вопросы и ответы по курсу и кейсам участников.
Теги курса
Выпуски серии 2
Все 2Другие материалы автора 1
АБ Алексей Белозерский Все материалыОтзывов пока нет. Будьте первым!
Этот курс сейчас в процессе организации складчины. Нажмите кнопку «Записаться» и ожидайте старта — вам придёт уведомление. Когда складчина стартует, в карточке курса будет указан актуальный взнос. Текущая цена пока в процессе формирования и может отличаться от финальной.
Да, мы стремимся, чтобы финальный взнос был не больше ≈10% от оригинальной цены курса. Чем больше участников записывается в складчину, тем ниже выходит взнос для каждого.
Нажмите кнопку «Записаться» и авторизуйтесь на сайте через email (через ту же почту, которую будете использовать для входа). В личном кабинете вас будут ждать инструкции, как пригласить других участников — чем больше людей записалось, тем быстрее стартует складчина и тем ниже взнос. Как только складчина готова к приобретению, вам придёт уведомление.