Курс на Stepik
Обложка курса «Trino и Presto для дата-инженеров» на Stepik
Бесплатно

Trino и Presto для дата-инженеров ★ 5.000

Открыть на
STEPIK.ORG

Trino 482 и PrestoDB для дата-инженеров: распределённый SQL, федерация, PostgreSQL, S3, Hive, Iceberg, Delta Lake, оптимизация, безопасность и эксплуатация.

Показатель Текущие показатели Рост
Значение 🏆 Рейтинг 3 дн 7 дн 30 дн
Количество учеников на курсе «Trino и Presto для дата-инженеров»Учеников на курсе 29
Сертификаты, выданные на курсе «Trino и Presto для дата-инженеров»Сертификатов выдано 0
Отзывы о курсе «Trino и Presto для дата-инженеров»Отзывов получено 1
Рейтинг курса «Trino и Presto для дата-инженеров»Рейтинг курса 5.000
Уроки в курсе «Trino и Presto для дата-инженеров»Количество уроков 155
Тесты в курсе «Trino и Presto для дата-инженеров»Количество квизов 666
Время прохождения курса «Trino и Presto для дата-инженеров»Время прохождения курса —
Обновления курса «Trino и Presto для дата-инженеров»Обновления курса — —
Дата публикации курса «Trino и Presto для дата-инженеров»Дата публикации курса — ———
Последнее обновление курса «Trino и Presto для дата-инженеров»Последнее обновление — ———
Сложность normal — ———

Содержание курса

Разделы в курсе «Trino и Presto для дата-инженеров» 22 раздела Уроки в курсе «Trino и Presto для дата-инженеров» 155 уроков Тесты в курсе «Trino и Presto для дата-инженеров» 666 тестов Время прохождения курса «Trino и Presto для дата-инженеров» 0 ч. Последнее обновление курса «Trino и Presto для дата-инженеров» обн. 19 июля 2026

Модуль 1. Введение: зачем дата-инженеру Trino/Presto и среда

7 уроков
1. Почему распределённый SQL-движок — новый стандарт аналитики ↗
2. Карта курса: от первого запроса до production-кластера ↗
3. Рабочее окружение: Docker, Trino CLI и первый контейнер ↗
4. Что такое Trino и при чём тут Presto: история одного форка ↗
5. Trino vs Spark vs Flink: когда выбирать распределённый SQL ↗
6. Архитектура на пальцах: coordinator, workers, connectors ↗
7. Как выполнять практику и проверять себя ↗

Модуль 2. Первые запросы: Trino CLI и диалект SQL

7 уроков
1. Подключение к Trino через CLI и первый SELECT ↗
2. Базовый синтаксис: SELECT, FROM, WHERE, ORDER BY, LIMIT ↗
3. Типы данных в Trino: числа, строки, даты, булевы значения ↗
4. NULL и трёхзначная логика: ловушки распределённого SQL ↗
5. Выражения и вычисляемые столбцы ↗
6. Комментарии, форматирование и чтение ошибок Trino ↗
7. Лаборатория: первые запросы к коннектору TPCH ↗

Модуль 3. Схема данных: каталоги, схемы и таблицы

7 уроков
1. Система каталогов: catalog.schema.table — трёхуровневая… ↗
2. Создание и исследование таблиц: SHOW, DESCRIBE… ↗
3. Типы таблиц: physical, view, materialized view ↗
4. Партиции и хранение: как Trino видит данные подсистем хранения ↗
5. Создание данных через CREATE TABLE AS и INSERT INTO ↗
6. Работа с временными таблицами и WITH (CTE) ↗
7. Лаборатория: создаём таблицы через коннектор Memory ↗

Модуль 4. Структурные типы и полуструктурированные данные

7 уроков
1. Массивы ARRAY: хранение, доступ и агрегация ↗
2. Ассоциативные массивы MAP: ключ-значение в колонке ↗
3. Структуры ROW: именованные поля внутри одной колонки ↗
4. UNNEST: разворачивание массивов и maps в строки ↗
5. Работа с JSON: функции json_parse, json_extract, json_query ↗
6. JSON-массивы и вложенные структуры: практические приёмы ↗
7. Лаборатория: разбираем полуструктурированный лог событий ↗

Модуль 5. Агрегации и группировки

7 уроков
1. GROUP BY и базовые агрегатные функции ↗
2. HAVING: фильтрация после агрегации ↗
3. DISTINCT и APPROX_DISTINCT: точная и приближённая уникальность ↗
4. FILTER: агрегация с условием ↗
5. GROUPING SETS, CUBE, ROLLUP: многомерная агрегация ↗
6. Оконные функции: OVER, PARTITION BY, ORDER BY ↗
7. Лаборатория: строим аналитическую витрину по заказам ↗

Модуль 6. Соединение таблиц и подзапросы

7 уроков
1. INNER JOIN и LEFT JOIN: классика распределённого SQL ↗
2. RIGHT JOIN, FULL JOIN и CROSS JOIN ↗
3. SEMI JOIN и ANTI JOIN: EXISTS и NOT EXISTS ↗
4. Коррелированные и некоррелированные подзапросы ↗
5. LATERAL: подзапросы, ссылающиеся на внешнюю строку ↗
6. UNION, INTERSECT, EXCEPT: операции над множествами ↗
7. Лаборатория: соединяем заказы, клиентов и товары из разных… ↗

Модуль 7. Планирование и оптимизация запросов: первый взгляд

7 уроков
1. EXPLAIN: как читать план запроса — первый взгляд ↗
2. Логический план: что Trino думает о вашем SQL до оптимизации ↗
3. Физический план: stages, tasks, splits и exchanges ↗
4. EXPLAIN ANALYZE: реальные метрики выполнения ↗
5. Rule-based оптимизация: predicate pushdown, column pruning ↗
6. Cost-based оптимизация: статистика таблиц и выбор JOIN-стратегии ↗
7. Лаборатория: профилируем запрос и находим узкое место ↗

Модуль 8. Коннектор PostgreSQL: федеративные запросы

7 уроков
1. Архитектура коннектора: как Trino читает внешнюю базу ↗
2. Настройка PostgreSQL-коннектора и первое подключение ↗
3. Pushdown в PostgreSQL: что уходит в базу, а что — нет ↗
4. Запись в PostgreSQL: INSERT, CTAS, DELETE и транзакции ↗
5. Соединение таблиц из разных источников: Trino + PostgreSQL ↗
6. Производительность федеративных запросов: узкие места ↗
7. Лаборатория: федеративный отчёт из PostgreSQL через Trino ↗

Модуль 9. Object Storage, Hive и открытые форматы

7 уроков
1. Почему данные уходят из баз данных в файлы на S3 ↗
2. Parquet: колоночный формат для аналитики ↗
3. ORC и Avro: сценарии применения ↗
4. Hive-коннектор: metastore как каталог файлов ↗
5. Partition pruning: читаем только нужные партиции ↗
6. Работа с partitioned-таблицами: создание и запросы ↗
7. Лаборатория: создаём Hive-таблицу поверх Parquet на S3 ↗

Модуль 10. Iceberg: современный табличный формат

7 уроков
1. Что такое Apache Iceberg и почему это стандарт lakehouse ↗
2. Iceberg REST Catalog и коннектор Trino ↗
3. Создание таблиц Iceberg: схемы, партиции и свойства ↗
4. Эволюция схемы: ADD COLUMN, DROP COLUMN, RENAME без перезаписи ↗
5. Time travel: читаем таблицу на определённый момент времени ↗
6. MERGE и UPDATE в Iceberg: DML для lakehouse ↗
7. Лаборатория: строим Iceberg-витрину с time travel ↗

Модуль 11. Delta Lake и сравнение форматов

7 уроков
1. Delta Lake в Trino: коннектор и возможности ↗
2. Создание и запись в Delta-таблицы ↗
3. MERGE и DELETE в Delta Lake ↗
4. Сравнение Iceberg и Delta Lake: когда что выбирать ↗
5. Hudi в экосистеме Trino/Presto: обзорная лаборатория ↗
6. Миграция между форматами: сценарии и инструменты ↗
7. Лаборатория: пишем сквозной пайплайн через два формата ↗

Модуль 12. Углублённая архитектура выполнения

7 уроков
1. Coordinator: парсинг, планирование и диспетчеризация запроса ↗
2. Worker: splits, drivers, operators и pages — конвейер выполнения ↗
3. Exchange: broadcast, hash-partitioned и gather — как данные… ↗
4. Stages и schedule: как запрос делится на этапы ↗
5. Task concurrency и pipelining: параллелизм внутри и между… ↗
6. Spooling protocol: обмен данными через диск при нехватке памяти ↗
7. Лаборатория: трассируем жизненный цикл одного запроса ↗

Модуль 13. Продвинутая оптимизация

7 уроков
1. Dynamic filtering: фильтрация больших таблиц данными из малых ↗
2. Join distribution: broadcast, partitioned и стратегии выбора ↗
3. Table statistics и ANALYZE: почему статистика критична ↗
4. Skew и её влияние: перекошенные ключи и способы борьбы ↗
5. Spill to disk: когда памяти не хватает ↗
6. Small files и compaction: проблема и решение ↗
7. Лаборатория: оптимизируем проблемный JOIN от 5 минут до 30… ↗

Модуль 14. Наблюдаемость и отладка

7 уроков
1. Web UI: мониторинг запросов в реальном времени ↗
2. JMX и метрики: что измерять в production ↗
3. Event Listeners: логирование событий запросов ↗
4. Логи Trino: http-request.log, server.log и уровни детализации ↗
5. OpenTelemetry и трассировка запросов ↗
6. Диагностика: медленный запрос, перекос, утечка памяти ↗
7. Лаборатория: находим и чиним production-инцидент ↗

Модуль 15. Безопасность

7 уроков
1. Аутентификация: пароль, LDAP, OAuth2, certificate ↗
2. Авторизация: system и connector-level access control ↗
3. File-based и Ranger access control в Trino ↗
4. OPA (Open Policy Agent) для Trino ↗
5. Impersonation: выполнение запросов от имени конечного… ↗
6. TLS: шифрование на всех каналах ↗
7. Лаборатория: настраиваем защищённый кластер Trino ↗

Модуль 16. Управление ресурсами и нагрузкой

7 уроков
1. Resource groups: очереди и приоритеты запросов ↗
2. Политики планирования: fair, weighted, weighted_fair ↗
3. Query limits: время выполнения, память, CPU на запрос ↗
4. Concurrency и очереди: защита от лавины запросов ↗
5. Resource groups для multi-tenant: изоляция команд и проектов ↗
6. Capacity planning: сколько worker'ов нужно кластеру ↗
7. Лаборатория: настраиваем resource groups для трёх команд ↗

Модуль 17. Развёртывание и эксплуатация

7 уроков
1. Режимы деплоя: Docker Compose, bare-metal, Kubernetes ↗
2. Trino на Kubernetes: Helm-чарт и конфигурация ↗
3. Graceful shutdown и drain worker'ов ↗
4. Обновление версии Trino без простоя (rolling upgrade) ↗
5. Disaster recovery: savepoints, backup конфигурации и metastore ↗
6. Масштабирование: добавление и удаление worker'ов ↗
7. Лаборатория: разворачиваем production-кластер в Docker ↗

Модуль 18. Trino в экосистеме дата-инженера

7 уроков
1. Airflow + Trino: оркестрация пайплайнов ↗
2. dbt + Trino: трансформации как код ↗
3. Superset и другие BI-инструменты поверх Trino ↗
4. Python-клиент Trino: скрипты и автоматизация ↗
5. JDBC: интеграция с Java-приложениями ↗
6. Качество данных поверх Trino: Great Expectations / Soda ↗
7. Лаборатория: строим dbt-проект поверх Trino + Iceberg ↗

Модуль 19. PrestoDB: сравнение и особенности

7 уроков
1. PrestoDB 0.298: установка и первое подключение ↗
2. Различия в конфигурации и администрировании ↗
3. Различия в SQL-диалекте и коннекторах ↗
4. Presto C++ / Velox: нативный worker и производительность ↗
5. Сравнение производительности Trino vs PrestoDB на типовых… ↗
6. Миграция между Trino и PrestoDB: что нужно знать ↗
7. Лаборатория: сравниваем Trino и PrestoDB на одних данных ↗

Модуль 20. Продвинутые темы и производительность

7 уроков
1. User-Defined Functions (UDF): пишем свою агрегатную функцию ↗
2. SPI коннекторов: как устроен коннектор изнутри ↗
3. Fault-tolerant execution: большие batch-запросы без падений ↗
4. Тюнинг JVM для Trino: GC, heap, direct memory ↗
5. Бенчмаркинг Trino: методология и инструменты ↗
6. Аппаратные аспекты: сеть, диски, CPU для Trino-кластера ↗
7. Лаборатория: бенчмарк и тюнинг production-нагрузки ↗

Модуль 21. Senior System Design и архитектура

7 уроков
1. Проектирование аналитической платформы на Trino ↗
2. Мультикластерная архитектура: разделение по нагрузкам ↗
3. Trino + lakehouse (Iceberg/Delta) как замена классическому DWH ↗
4. Стоимость: Trino в облаке vs on-premises ↗
5. SLO/SLA для Trino-кластера: метрики и договорённости ↗
6. Disaster recovery и business continuity для аналитической… ↗
7. Чек-лист: готовность Trino к production ↗

Модуль 22. Итоговый проект и дорожная карта

8 уроков
1. Постановка итогового проекта: аналитическая система E-Shop ↗
2. Проектируем схему данных: источники, слои, витрины ↗
3. Разворачиваем production-окружение проекта ↗
4. Реализация: федеративные запросы и Iceberg-витрины ↗
5. Настройка безопасности и resource groups ↗
6. Мониторинг, алертинг и инцидент-менеджмент ↗
7. Презентация проекта: защита архитектурных решений ↗
8. Дорожная карта: Trino/Presto internals, сообщество и карьера ↗