Lakehouse для аналитиков и инженеров данных [devhands] [Алексей Белозерский]

Джокер

Администратор
Регистрация
1 Янв 2015
Сообщения
133.718
Реакции
76.326
Складчина: Lakehouse для аналитиков и инженеров данных [devhands] [Алексей Белозерский]




Кому подойдет курс:

Аналитикам данных

Инженерам данных

ML-инженерам
Чему научитесь:

Познакомиться с архитектурой LakeHouse, последним поколением аналитических систем с разделенными слоями хранения (Iceberg/S3) и вычисления (Trino/k8s)

Научиться строить гибридные пайплайны обработки данных с использованием SQL, Python, Spark

На практике научиться использовать кластер Trino over k8s, который будет обращаться к данным на S3 в формате Iceberg

Освоить масштабирование до х100 раз без смены парадигм и технологий
Программа:

Занятие 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.

Занятие 5. Пайплайны и финальная Q&A-сессия
Pipeline 1 - Airflow + DBT + PyIceberg over S3+Iceberg. Моделирование данных в SQL на DBT. Добавляем Pytnon - предикты ML. Pipeline 2 - Поддержка Iceberg Table. Собираем информацию для мониторинга. Запускаем процедуры поддержки по триггеру или порогу.Q&A. Вопросы и ответы по курсу и кейсам участников. Возможные дополнительные темы: другие реализации Lakehouse -- Duck Lake, Paimon, Apache Doris, движки DLH Compute: StarRocks, Clickhouse 25.x Iceberg Engine. Публичные примеры построения крупных Лейкхаусов в российских компаниях. Стриминг данных в Iceberg - Kafka. Spark, Spark Streaming. Формат Paimon - оптимизированный для стриминга. Time Travel в Iceberg. Какие бывают каталоги Iceberg и какой функционал они добавляют.





СКАЧАТЬ СЛИВЫ КУРСОВ