Практикум по Data Engineering: сквозной ETL на Spark + Postgres + Airflow + BI

За 8 недель поддержки вы соберёте мини-DWH и полноценный пайплайн (RAW → STG → CORE → MARTS) на датасете Olist — так, чтобы это можно было честно положить в портфолио и уверенно обсуждать на собеседовании как рабочий кейс.

Доступ к материалам — навсегда, новые модули добавляются по мере выход
Зайти в поток на практикум
Один цельный проект
Один цельный проект
Не разрозненные уроки, а один пайплайн: от исходных CSV → S3-lake (MinIO) → трансформации в Spark → DWH в Postgres → витрины → BI-дашборд.
Стек как в проде
Стек как в проде
Docker-стенд, Spark 3.5 (PySpark), PostgreSQL 15, MinIO (S3), Airflow, Jupyter, BI. Это связанная система.
Наставник-практик
Наставник-практик
Помогаю. как в работе: читаем логи, разбираем падения контейнеров, ошибки Spark, проблемы с зависимостями, DAG-и, ретраи, идемпотентность.
Фокус на переход в DE
Фокус на переход в DE
На выходе у вас остаётся репозиторий, структура слоёв, DAG-и, витрины и дашборд + понятная история “как я строил ETL”.
Как выглядит практикум внутри: живой репозиторий, стенд и задания
Код и структура лежат в приватном Git-репозитории: вы не “смотрите уроки”, вы ведёте проект.

Стенд поднимается локально через Docker: Spark-кластер + Postgres + MinIO(S3) + Airflow + Jupyter.

Практика — в ноутбуках и шагах README:
вы читаете → делаете → фиксируете результат → проверяете качество → двигаетесь дальше.

На скринах — ровно то, что будет у вас: запущенные сервисы, выполненные джобы, DAG-и, слои данных и артефакты проекта.
Что вы сделаете и что положите в портфолио
Соберёте мини-кластер и DWH
  • Поднимете Docker-стенд: Spark Master + Workers, Postgres, MinIO (S3), Airflow, Jupyter
  • Научитесь проверять здоровье стенда и понимать “что сломалось” по логам
  • Артефакт: docker-compose + инструкции + скрины сервисов (Spark UI / Airflow UI / MinIO)
Построите сквозной ETL-поток
  • Разложите данные по датам загрузки и заведёте “контракт” слоёв
  • Настроите идемпотентные загрузки и инкременты
  • Будете хранить RAW/STG-артефакты в S3-лейке (MinIO), а модель и витрины — в DWH
  • Артефакт: структура слоёв + код трансформаций + проверки качества
Подключите оркестрацию в Airflow
  • Оформите пайплайн в DAG: зависимости, ретраи, расписание
  • Научитесь читать “почему упало” и чинить без магии
  • Артефакт: DAG-и + скрины графа/ранов + понятное описание пайплайна
Соберёте витрину и отчёт в BI
  • Сделаете витрину под типовые вопросы (продажи/заказы/доставка)
  • Подключите BI и соберёте простой, но честный дашборд
  • Артефакт: витрина + дашборд + “история проекта” для резюме/собеса
Инструментарий
Стек максимально близок к тому, с чем работают DE в проде. Всё разворачивается локально — без облачных счетов и ограничений по ресурсам.
  • Docker + docker compose
    Развёртывание окружения на Вашей машине. Один docker compose up — и весь стек готов к работе.
  • Spark 3.5 (PySpark)
    Основной вычислительный движок. Трансформации, агрегаты, подготовка слоёв core и marts. joins, партиционирование, кеширование, контроль skew.
  • PostgreSQL 15
    STG/CORE, факты/измерения, связи и качество данных. Подключаем BI к витринам.
  • Airflow
    Оркестрация пайплайнов raw → stg → core → marts. Расписания, зависимости, базовые алерты.
  • JupyterLab
    Рабочее место: эксперименты в PySpark, SQL-чек-коды, небольшие проверки качества данных.
  • BI
    Финальный дашборд по витрине. Можно показать на собеседовании, что Вы делали ETL целиком, а не только SELECT’ы.
  • Git + приватный репозиторий
    Код и инфраструктура — в приватном репо. Ты работаешь с git-флоу, как в реальных командах, а не просто скачиваешь ноутбуки zip-ом.
  • MinIO (S3)
    Храним RAW/STG-слои и артефакты как в настоящем data lake: бакеты, пути, партиции, доступы.
Дорожная карта модулей
Поток идёт 8 недель — за это время вы собираете основу проекта и доводите её до портфолио-уровня.
Дальше модули расширяются (batch/streaming, observability, оптимизация) — доступ к обновлениям остаётся у вас навсегда.
Готово
Готово
Модуль 0. Окружение: Docker-стенд, проверка сервисов
После него: на ноутбуке крутится рабочий docker-стенд, вы уверенно запускаете и перезапускаете контейнеры и перестаёте бояться Docker.
Готово
Готово
Модуль 1. RAW → STG: загрузка датасетов, идемпотентность
После него: умеете раскладывать датасеты по датам загрузки и грузить их в STG идемпотентно, понимаете, что такое ingest_date и replace-паттерн.
Готово
Готово
Модуль 2. Моделирование CORE: факты/измерения, event-даты, инкременты
После него: у вас есть модель DWH уровня CORE — факты, измерения, event-даты и инкременты. Ровно тот уровень, про который любят спрашивать на собесах.
Готово
Готово
Модуль 3. Spark. Основы
Запустите первую сессию, научитесь читать / писать данные, разберетесь с pyspark и spark.sql
Готово
Готово
Модуль 4. Витрины: денормализация, партиционирование
После него: умеете собирать витрины под конкретные продуктовые вопросы, денормализовывать данные и продумывать партиционирование под нагрузки.
2 февраля 2026
2 февраля 2026
Модуль 5. Качество и SLA: дубликаты, пропуски, аномалии
После него: умеете ловить дубликаты и пропуски, настраивать базовый DQ и объяснить на собесе, откуда берётся SLA пайплайна и как не завалить отчёты.
16 февраля 2026
16 февраля 2026
Модуль 6. Spark Batch: трансформации, партиционирование, оптимизация
После него: уверенно пишете Spark-джобы, понимаете, как работают партиционирование и оптимизация, и можете аргументированно говорить о производительности.
2 марта 2026
2 марта 2026
Модуль 7. Оркестрация (Airflow): DAG raw→stg→core→marts
После него: умеете собирать DAG’и, настраивать зависимости, ретраи и расписания, видите картину пайплайна целиком, а не только отдельные скрипты.
16 марта 2026
16 марта 2026
Модуль 8. Observability: метрики пайплайнов, алерты
После него: знаете, какие метрики трекать для пайплайнов, как настраивать алерты и не узнавать о падениях из сообщений «почему отчёт не обновился?».
30 марта 2026
30 марта 2026
Модуль 9. SQL-оптимизация: планы, индексы, анти-паттерны
После него: умеете читать планы запросов, говорить про индексы и объяснять, почему «такой SELECT» убивает базу. Готовый набор ответов на каверзные вопросы.
13 апреля 2026
13 апреля 2026
Модуль 10. Streaming: мини-стрим заказов, чек-пойнты
После него: понимаете базовые паттерны streaming-обработки в Spark, чек-пойнты и отличие стрима от батча на реальном сценарии заказов.
Что вы получите в потоке практикума
Весь практикум целиком + все обновления
Вы входите в проект и получаете доступ к новым модулям по мере выхода (Airflow, Observability, оптимизация, и т.д.). Это живой проект, который развивается.
Личную поддержку по шагам
Закрытый Telegram-чат на время потока: помогаю с Docker, Spark, Postgres, MinIO(S3), Airflow, SQL и архитектурой. Если что-то ломается — разбираем.
Реальный сквозной проект в портфолио
Репозиторий, слои, DAG-и, витрины, BI-дашборд и история “что я построил и почему так”.
Мышление и паттерны уровня middle
Идемпотентность, инкременты, слойность, качество данных, оркестрация, наблюдаемость и базовая производительность — ровно то, чего обычно не хватает после “просто SQL”.
Что я ожидаю от участников потока
Выделять время каждую неделю
Примерно 6–8 часов в неделю на модули и практику. Это не марафон «делай быстрее», а стабильный темп, чтобы практикум двигался, а не зависал на старте.
Делать шаги и не бояться показывать код
Не нужен идеальный продакшен-код. Важно, чтобы вы честно проходили шаги модулей, выкладывали промежуточные результаты и задавали вопросы, когда что-то ломается.
Честную обратную связь по модулям
Писать, где было понятно, где вы застряли, какие формулировки или скрипты стоит переписать. На основе этого я дорабатываю практикум, чтобы следующий поток шёл ещё легче.
1–2 коротких отзыва по итогам
В конце практикума — небольшой текстовый отзыв и согласие на публикацию (с именем или анонимно — по вашему выбору). Это помогает мне развивать курс и честно показывать результаты.
Формат обучения
Без созвонов и видео-марафонов.
Вы спокойно проходите практикум в своём темпе, я помогаю в чате.
Без видосов на 2 часа
Все модули — в текстовом виде, как подробные тех-требования и README. Ты читаешь, делаешь, возвращаешься, а не перематываешь лекцию в поисках нужного момента
Всё локально, через приватный репозиторий
Вы получаете доступ к приватному Git-репо, клонируете его себе и разворачиваете окружение в Docker. Код и данные — у Вас на машине; никакого шаринга с чужими студентами и общими ноутбуками.
Пошаговые текстовые модули + ноутбуки
Каждый модуль — это подробное текстовое объяснение (README) + SQL/скрипты + Jupyter-ноутбуки. Можно читать, экспериментировать, возвращаться к шагам, не перематывая видео.
Поддержка в чате
Вы задаёте вопросы по Docker, Spark, Postgres, Airflow, SQL и архитектуре.
Я помогаю разобраться с падениями контейнеров, ошибками в запросах и нелетающими пайплайнами.
Темп — Ваш, но с ориентиром по срокам
Рекомендуемый темп — около 6–8 часов в неделю. Сопровождаю вас 2 месяца, после отпускаю в соло разработку. У вас остается доступ в репозиторий навсегда.
Фокус на реальном результате
Цель не в том, чтобы «посмотреть курс», а в том, чтобы у Вас на ноутбуке работал мини-DWH и ETL-поток. В финале у Вас будет что положить в портфолио и разбирать на собеседовании.
Для кого этот практикум
Практика для тех, кто хочет не только писать запросы, но и собирать полноценный ETL-поток.
  • Junior / Middle Data Engineer
    SQL уже есть, но на собесе спрашивают: “а где пайплайны, оркестрация, слои, инкременты?”
    Здесь вы соберёте проект, который закрывает этот разрыв.
  • Аналитик, который хочет в Data Engineering
    Вы сильны в SQL, но хочется “инженерной части”: загрузки, слойность, качество, витрины, запуск по расписанию.
    Пройдёте путь от файлов до витрин и поймёте, подходит ли вам роль DE.
  • Инженер, у которого «нехватает Spark»
    Если Spark и оркестрация пока ощущаются как “тёмный лес” — здесь вы разберётесь на практическом проекте, без абстрактных лекций.
Присоединиться к потоку (конец февраля)
Стоимость: 30 000 ₽
Места ограничены — потому что поддержку даю лично.
Оставить заявку на участие
После заявки я напишу вам, уточню уровень и подскажу,
с чего лучше стартовать, чтобы вы дошли до результата.
FAQ
Часто задаваемые вопросы