Этот роадмап — конспект моих подходов к обучению Data Engineering.
Он подойдёт тем, кто хочет:
- системно войти в профессию с нуля или близкого к нулю уровня;
- закрыть пробелы в базе (SQL, Git, Python, DWH, Airflow, Greenplum, Kafka, ClickHouse);
- подготовиться к собеседованиям и первым рабочим задачам.
Роадмап можно проходить самостоятельно или вместе со мной в формате менторства.
Если хотите идти с поддержкой ментора — напишите в Telegram: @dementev_dev.
- Основные знания — Linux, Git, SQL, Python, методологии, Docker
- Практика и инструменты - Airflow, Greenplum, Streaming, ClickHouse, две курсовые
- Карьера и менторство — резюме, собеседования, испытательный срок
- Расширенные навыки - Lakehouse, dbt
- Софт скиллы
- Дополнительные материалы
Рекомендуемый способ использования:
- двигаться по разделам последовательно, не перепрыгивая через базу;
- выполнять практику и домашки, а не только смотреть материалы;
- возвращаться к разделам по мере появления реальных задач.
Основная программа включает две курсовые: сначала хранилище на Greenplum, затем Clickstream на ClickHouse. Streaming и ClickHouse входят в обязательную часть подготовки к трудоустройству. Lakehouse и dbt можно изучать после нее, под задачи и интересующие вакансии.
Командная строка — рабочее место дата-инженера: docker, psql, git, подключение к серверам живут именно там. Отдельная практика не нужна — все стенды этого роадмапа консольные, команды закрепятся сами. На Windows поставьте WSL — полноценный Linux внутри Windows.
- Основы Linux для начинающих за 1.5 часа - Youtube — что такое терминал, навигация, файлы, права, ssh: мягкий вход перед статьями
- Linux: Файлы, навигация и поиск - Habr — перемещение по каталогам, чтение файлов и логов: less, tail, grep
- Права доступа к файлам и папкам в Linux - FirstVDS — rwx, chmod, chown
- SSH для начинающих - Cloud.ru — подключение к удалённой машине
- Основы командной строки - Hexlet — опционально: бесплатный интерактивный курс с терминалом прямо в браузере; достаточно уроков про навигацию, grep и права доступа
Что такое контроль версий, когда используется, ПОЧЕМУ и как мы в обучении будем использовать. Как создать репозиторий на GitHub, сохранять в нем изменения.
- Что такое Git для Начинающих / GitHub за 30 минут / Git Уроки - Youtube
- Git: Конфликты для Начинающих // Git Cherry Pick, Git Revert, Git Reset - Youtube
- Книга Pro Git - читать главу 1
- Язык Markdown и файл README | Git и GitHub для начинающих - Youtube
- Markdown и его возможности: простой способ оформления текста
- Синтаксис Markdown: подробная шпаргалка для веб-разработчиков / Skillbox Media
Домашки по остальным темам тренируемся делать в Git, там же пишем документацию.
Когда блок Git и базовые инструменты считаем пройденным:
- ориентируетесь в терминале: перемещаетесь по каталогам и находите нужное в логах (grep, tail, less);
- понимаете права файлов (rwx, chmod) и знаете, как подключиться к серверу по ssh;
- вы уверенно создаёте репозиторий, коммитите изменения и отправляете их на GitHub;
- имеете представление о работе с ветками: создание, переключение, что такое merge/PR и разруливание простых конфликтов;
- оформляете базовую документацию в Markdown (README, заголовки, списки, ссылки, кодовые блоки).
SQL и моделирование данных специально идут рядом: сначала учимся уверенно извлекать данные запросами, затем — понимать и проектировать структуру данных, чтобы ETL/витрины были осмысленными.
Книга: PostgreSQL. Основы языка SQL - Глава 1 "Введение в базы данных и SQL" + ДЗ
Бесплатный тренажер: Интерактивный тренажер по SQL – Stepik
Целевой уровень знания SQL - Live кодинг на собесе. Проверяем на первом мок-интервью
CTE
- Зачем нам CTE: Getting started with CTEs | dbt Labs
- Подробнее про синтаксис: PostgreSQL : Документация: 17: 7.8. Запросы WITH (Общие табличные выражения) : Компания Postgres Professional
Для дальнейшей тренировки и поддержания уровня можно использовать Database - LeetCode. Хорошая подборка задачек: SQL 50 - Study Plan - LeetCode
Перед DEV1: запустите учебную базу. Для практики рекомендую
стенд PostgreSQL с базой bookings.
В README стенда описаны запуск в Docker, подключение через psql и DBeaver.
Это наше первое знакомство с Docker: пока достаточно научиться запускать
и останавливать стенд, смотреть его статус и подключаться к базе.
Подробный блок Docker будет дальше.
Смотрим курс от Postgres Pro DEV1
Темы - от "Введение" до "SQL" включительно, "Управление доступом", "Резервное копирование". Для лучшего усваивания материала проделываем все примеры и домашние задания из конспектов лекций.
С темой "PL/pgSQL" можно ознакомиться обзорно.
Для дальнейшего закрепления материала - читаем книгу PostgreSQL. Основы языка SQL
- Глава 8 - Индексы + ДЗ
- Глава 9 - Транзакции
- Глава 10 - Повышение производительности + ДЗ
Вопросы оптимизации запросов хорошо описаны в курсе QPT от Postgres Pro. Полученные навыки применимы для работы в том числе с Greenplum, и частично, другими БД. На странице курса выбирайте материалы и видеозаписи для PostgreSQL 16.
Понимание того, как устроены данные и зачем они нужны, — ключ к качественным ETL-процессам.
Мы кратко разбираем:
- Основные подходы: нормализованные (3NF) vs денормализованные (звезда, снежинка)
- Что такое staging, marts, слои raw / clean / business
- Как проектировать таблицы под конкретные сценарии использования
Цель — не стать архитектором, а уметь читать и объяснять структуру данных, чтобы писать осмысленные запросы и трансформации.
Материалы (включая демо DWH-модель из этого репозитория):
- Мартин Клеппман — «Высоконагруженные приложения» - Глава 2: Модели данных и языки запросов. - Для понимания, чем реляционная модель (SQL) отличается от документной (NoSQL) и графовой, и почему для аналитики мы всё ещё любим таблицы (Важно: не перепутайте главу 2 с Частью 2 про распределенные данные!).
- Яндекс Практикум: что такое нормализация, простыми словами (для самых начинающих)
- Базы данных. 1,2,3 нормальные формы. - Youtube
- Введение в структуру хранилища данных
- Теория про Slowly Changing Dimensions: SCD
- (Опционально) Ральф Кимбалл — «Инструментарий хранения и анализа данных» (The Data Warehouse Toolkit) - первые 3 главы
- Практика по моделированию статусов клиента: домашка STG → ODS → DDS → DM
- Data Vault и Anchor Modeling изучаем обзорно, для знакомства с основными
понятиями. Глубокий разбор и самостоятельное проектирование на этом этапе
не требуются. Материалы для знакомства:
- Конспект и примеры из этого репозитория: DataVault.md
- DataVault за 10 минут - Youtube
- Статья «Что такое Data Vault: моделирование КХД для архитектора Big Data» — обзор, плюсы/минусы, контекст применения.
- Гибкие методологии проектирования Data Vault и Anchor Modeling | Евгений Ермаков | karpov.courses
- Лекция в рамках курса по DWH: именно «Основы Data Vault, создаем первую модель» — хороший формат: теория + пример.
- Доклад - практический пример: Денис Лукьянов — Data Vault 2.0. Когда внедрять, проблемы применения при построении DWH на Greenplum
- Хорошее общее введение в модели данных дано в статье и докладе от Yandex: Как мы внедрили свою модель хранения данных — highly Normalized hybrid Model. Доклад Яндекса
Когда блок «Базы данных» считаем пройденным:
- вы уверенно пишете запросы с JOIN, агрегатами, подзапросами и CTE;
- можете подробно объяснить план запроса в Postgres, понимаете где планировщик отработал корректно, а где - есть возможность улучшить;
- можете объяснить простую модель данных (3NF/звезда) и прочитать схему DWH;
- решаете типовые задачи уровня SQL live-coding без долгих пауз.
Если совсем не знакомы с Python, начинаем с курса "Поколение Python": курс для начинающих - Stepik.
Перед курсом для продвинутых подготовьте рабочую среду. Она пригодится для экспериментов с кодом и домашних заданий.
- Виртуальные окружения (venv) изолируют зависимости проекта:
- JupyterLab позволяет выполнять код по ячейкам и сохранять пояснения рядом с результатами:
Создайте venv, установите в него JupyterLab и запустите из этого же окружения.
В новом ноутбуке выполните несколько ячеек, сохраните .ipynb, перезапустите
ядро и выполните все ячейки по порядку. В Git сохраняйте ноутбуки и скрипты,
а каталог .venv/ добавьте в .gitignore.
Теперь продолжаем изучать Python:
- Изучаем глубже и "оттачиваем" live coding: "Поколение Python": курс для продвинутых – Stepik
- Продолжение "базы", спрашиваемой на собеседованиях, по Python: "Поколение Python": курс для профессионалов. Курс очень полезный, но платный. Вместо него можно почитать "продвинутые" темы дальше.
- "Продвинутые" темы:
- Полезные функции
- Работа с файлами в формате CSV, JSON, YAML
- Итераторы, итерируемые объекты и генераторы
- Управление памятью (документация на английском):
- Объекты, ссылки и изменяемость - почему два имени могут указывать на один список и что происходит при его изменении.
- Как Python управляет памятью - подсчет ссылок и сборка циклов в CPython; особенности других реализаций Python.
- Модуль gc - справочник для экспериментов со сборщиком мусора. Детали поколений и порогов смотрите для своей версии Python.
- Декораторы Python: пошаговое руководство
- Работа с датой/временем: официальная документация по модулю datetime
- Сложность алгоритмов. Разбор Big O — короткий материал, чтобы понимать O(n) vs O(n²) на собеседованиях и в коде
- ООП
- Pandas
Полезно, но дороговато и не обязательно: хорошее комбо SQL + Python — "Поколение Python": профи + ООП + SQL – Stepik
Цель — уверенно решать простые задачи на Python в формате live-coding; дальше эти навыки пригодятся для создания DAG Airflow.
Когда блок Python считаем пройденным:
- создаете venv, устанавливаете в него пакеты и запускаете JupyterLab; можете повторить вычисления в ноутбуке после перезапуска ядра;
- вы без подсказок пишете небольшие скрипты с циклами, функциями, обработкой ошибок и работой с коллекциями;
- умеете читать и модифицировать чужой код, в том числе с использованием pandas и DataFrame;
- уверенно проходите простой live-coding по Python для DE: прочитать CSV/JSON, отфильтровать, сгруппировать данные и посчитать агрегаты.
- можете отвечать как на простые вопросы собеседований (циклы, списки, словари), так и продвинутые (итераторы, декораторы, базовые понятия ООП);
- на примере со списком объясняете разницу между объектом и ссылкой на него,
почему
delодного имени не обязательно уничтожает объект и зачем CPython нужен сборщик циклического мусора.
Зачем это разработчику?
- Работа в команде. Вам нужно понимать «правила игры». Почему задачи двигаются именно так? Зачем мы встречаемся каждое утро на 15 минут? Почему нельзя просто взять задачу из середины списка?
- Собеседование и «легенда». Когда вас спросят: «Как строилась работа в вашей прошлой команде?», вы должны ответить грамотно. Использование правильной терминологии (спринты, груминг, ретроспектива, WIP-лимиты) — это маркер профессионализма. Это показывает, что вы не просто писали код в вакууме, а были частью налаженного процесса.
Для начала нужно понять глобальную разницу между жестким планированием (Waterfall) и гибкой разработкой (Agile).
- Waterfall или Agile, Scrum или Kanban: что выбрать — Базовая статья. Читать внимательно, закрывает вопросы и по Waterfall, и по выбору пути.
- Agile, Scrum, Kanban - обзор, отличия, мифы — Видео для закрепления. Помогает разложить кашу в голове по полочкам.
Agile — это не метод, а философия. Scrum и Kanban — это инструменты этой философии.
- Scrum vs Kanban: отличия и разница Agile методов — Сравнение двух главных фреймворков. Важно понять, где заканчивается один и начинается другой.
Используется, когда мы создаем продукт и работаем спринтами (циклами). Часто встречается в продуктовых командах, где DE работает в связке с Backend/Frontend.
Используется для управления потоком задач и поддержки. Наиболее популярен в Data Engineering и DevOps, так как данные поступают непрерывно, и их сложно «запереть» в двухнедельный спринт.
Теория — это хорошо, но на работе вы увидите конкретный интерфейс (Jira или Yandex Tracker). Важно понимать, куда нажимать и как двигать задачи.
Самый популярный инструмент. Скорее всего, вы столкнетесь именно с ним.
- Как работать с Jira на реальных проектах (15 мин) — Отличное видео, где показывают базу: как создать задачу, как перетащить её по доске (Kanban) и что писать в комментариях. Смотреть с 04:00, где начинается практика.
- Создание и настройка Scrum-досок в JIRA — Если хотите увидеть, как выглядит Спринт и Бэклог изнутри.
Активно внедряется в крупных компаниях РФ. Логика та же, но интерфейс другой.
- Начало работы в Яндекс.Трекере (3 мин) — Супер-короткий официальный гайд. За 3 минуты показывают всё: очереди, доски, карточки.
- Настройка процесса разработки в Tracker (c 06:37) — Более глубокий разбор: как выглядит очередь задач разработчика и жизненный цикл тикета.
💡 Совет: Не бойтесь кнопок. Главное правило любого трекера: «Взял задачу в работу — переведи статус в In Progress». Это сигнал команде, что вы заняты и вас лучше не отвлекать.
Когда блок «Методологии разработки» считаем пройденным:
- вы в общих чертах можете объяснить разницу Waterfall vs Agile и Scrum vs Kanban;
- знаете основные мероприятия Scrum (planning / daily / review / retro) и что от вас ожидается на каждом;
- умеете работать с трекером (Jira/Tracker): создать/уточнить задачу, взять в работу, корректно двигать статусы и оставлять понятные комментарии;
- умеете своевременно сообщать о блокерах и уточнять требования, если задача «не бьётся» или в ней не хватает входных данных.
- Сжатый, но емкий видеогайд: GIT, GitHub, GitLab. Полный АКТУАЛЬНЫЙ гайд ЗА ПОЛТОРА ЧАСА. Без этого выгонят с работы - Youtube
- Книга: Pro Git - главы - 2 Основы Git - 3 Ветвление в Git - 5 Распределённый Git - 6 GitHub
- Курс работы с Git и GitLab - ЭФКО ЦПР | YouTube плейлист. Настоятельно рекомендую проделать за лектором все те действия что он показывает.
Целевой уровень знания - понимание процесса GitFlow. Как создать ветку, влить изменения в другие ветки. Понимание, зачем. На собесах обычно не спрашивают, но нужно в работе.
Основное предназначение для нас - учебные стенды, где мы разбираем и тренируемся с разными технологиями. На работе - иногда пригождается. На собесах спрашивают редко.
OBS Studio
- Руководство по OBS: OBS Studio - Настройка ОБС для Записи Игр и Стрима | Настройка Микрофона в Обс и т.д - Youtube
- Как записывать собеседования
Когда блок технических навыков считаем пройденным:
- вы понимаете базовый GitFlow: как организована работа с ветками в команде и как ваши коммиты попадают в прод;
- используете Docker для учебных стендов: запускаете контейнеры, смотрите логи и при необходимости перезапускаете сервисы;
- при необходимости умеете настроить запись экрана/созвонов, чтобы сохранять материалы обучения.
Apache Airflow — инструмент для оркестрации ETL-процессов.
Мы используем его для:
- планирования задач,
- отслеживания зависимостей между шагами,
- визуализации статуса выполнения.
Материалы:
Задания выполняем параллельно с чтением учебника. Начинаем с простых DAG и SQL, затем обрабатываем файлы, загружаем CSV в PostgreSQL и добавляем проверки качества. Дальше расширяем ETL, разбираем ветвление, повторные попытки и логирование. Здесь Python и SQL впервые работают вместе в пайплайне, которым управляет Airflow.
Когда блок Airflow считаем пройденным:
- вы можете объяснить, что такое DAG, задачи, операторы и сенсоры, и как между ними задаются зависимости;
- на базе учебного стенда подготавливаете, отлаживаете и запускаете свои DAG'и с расписанием и несколькими шагами (например, загрузка данных и последующие трансформации);
- расширяете загрузку CSV в PostgreSQL: меняете генерацию данных, схему таблицы и загрузку новой колонки;
- добавляете свою проверку качества и убеждаетесь, что она обнаруживает подготовленную ошибку в данных;
- уверенно смотрите логи, находите место падения и понимаете, как перезапустить задачу.
Разбираем, чем Greenplum отличается от PostgreSQL и зачем нужны MPP-хранилища.
Прежде чем нажимать кнопки, нужно понять "физику" больших данных. Почему обычный Postgres начинает тормозить?
- Мартин Клеппман, "Высоконагруженные приложения":
- Глава 1. Надежность, масштабируемость. (Разбираемся, чем вертикальное масштабирование отличается от горизонтального).
- Глава 3 (только конец главы). Читаем разделы:
- «Обработка транзакций или аналитика?» (OLTP or OLAP?) — ключевое различие нагрузок.
- «Хранение по столбцам» — почему аналитика требует другого способа записи данных на диск.
- Зачем: Это объясняет, почему Greenplum устроен именно так. Без этого вы будете пытаться работать с ним как с обычным Postgres.
Теперь, понимая теорию, смотрим, как это реализовано в конкретном инструменте.
- Простое введение: Greenplum | Что это такое и как оно работает? - Youtube
- Визуализатор распределения Greenplum
Курс Yandex по Greenplum — основной учебный курс, рекомендуется пройти целиком:
- Бесплатный курс Yandex Cloud по Greenplum
- Практику по курсу удобно делать на стенде airflow-dwh-gp-lab —
make upподнимает рабочий Greenplum с PXF, не нужен облачный кластер. - Стенд покрывает основные темы курса: типы таблиц (heap / appendonly), политики дистрибуции, сжатие, PXF, анализ планов выполнения (
EXPLAIN). - Единственное ограничение: cloud-специфичные темы (тема 2 курса — развёртывание в Yandex Cloud) на локальном стенде не покрыты.
Когда блок Greenplum считаем пройденным:
- вы понимаете, как данные распределяются по сегментам, что такое skew и как его увидеть;
- на базе стенда
airflow-dwh-gp-labможете загружать и выгружать данные в Greenplum, выполнять запросы и разбирать планы выполнения (EXPLAIN); - можете объяснить, в чём практическая разница между MPP-хранилищем и одиночным Postgres на уровне типичных задач DE и собеседований.
Первая курсовая собирает изученное в один проект: загрузку данных из PostgreSQL, слои хранилища в Greenplum и управление обработкой через Airflow.
Курсовая выполняется на том же стенде airflow-dwh-gp-lab, который вы уже использовали для практики по Greenplum.
Что внутри:
- Стенд содержит DWH с реализованным эталонным срезом (STG → ODS → DDS → DM) — это ваш образец для подражания.
- Задача — довести DWH до полного, реализовав недостающие загрузки по аналогии с эталоном.
- Есть готовый план от аналитика (ТЗ с маппингами и бизнес-правилами) — не нужно придумывать, что делать.
- Встроенная автоматическая проверка реализации поможет убедиться в корректности до проверки ментором.
- Ветка
main— рабочая (с заготовками для реализации), веткаsolution— эталон для сверки.
Когда блок курсовой работы считаем пройденным:
- все загрузки реализованы, DWH заполняется полностью (STG → ODS → DDS → DM);
- автоматическая проверка (валидационный DAG) проходит без ошибок;
- вы можете на собеседовании за 5–10 минут рассказать архитектуру проекта, его цели и показать ключевые части кода.
После этой работы переходим к потокам событий и ClickHouse. Они понадобятся для большой курсовой Clickstream.
В первой курсовой мы загружали данные из базы. Теперь разберем прием потока событий: как доставить их в хранилище и продолжить чтение после остановки обработчика. NiFi помогает собрать поток обработки визуально, Kafka хранит события в распределенном журнале и позволяет потребителям читать их независимо.
Материалы:
- Apache NiFi с нуля за 3 часа (Youtube-плейлист) — первые 4 видео, дальше — по желанию
- Лучший Гайд по Kafka для Начинающих За 1 Час (Youtube)
Практика — на стенде nifi-kafka-postgres-lab (Docker Compose с NiFi, Kafka и Postgres):
- настраиваем в NiFi простой генератор данных и поток в Postgres;
- строим поток NiFi → Kafka → NiFi → Postgres.
Перед большой курсовой нужно уметь:
- объяснить связь между топиком, партицией, consumer group и offset;
- отправить сообщения в Kafka и прочитать их потребителем;
- показать на учебном потоке, откуда продолжится чтение после перезапуска, и объяснить, почему при повторной доставке могут появиться дубли.
В курсовой Clickstream события и заказы поступают через Kafka в ClickHouse. Вернемся к этим вопросам, когда будем разбирать прием данных и их обработку в хранилище.
ClickHouse используем для аналитики по событиям и заказам. Здесь нужно разобраться, как хранить данные, выбирать ключ сортировки и строить витрины. Затем применим это в большой курсовой.
Материалы:
- Бесплатный курс ClickHouse от Yandex Cloud берем за основу.
Практика:
Упражнения по самой СУБД можно выполнять локально на clickhouse-learning-cluster: четыре узла ClickHouse в Docker Compose, репликация, шардинг и HAProxy. Задания по облачной инфраструктуре требуют Yandex Cloud и оплаты ресурсов.
Когда готовы переходить к курсовой:
- создаете таблицы семейства MergeTree и объясняете выбор
ORDER BYиPARTITION BY; - различаете шардирование и репликацию, понимаете роль таблиц Distributed;
- загружаете данные, пишете аналитические запросы и можете объяснить, как устройство таблицы влияет на чтение данных.
На стенде clickstream-data-platform работаем с хранилищем интернет-магазина. Генератор создает события посетителей и заказы, Kafka доставляет их в ClickHouse. Данные проходят слои STG, ODS, DDS и DM; Airflow управляет обработкой, Superset показывает отчеты.
Часть хранилища уже работает. В заданиях вы строите свои витрины, разбираете готовые загрузки и меняете их, сверяя результат с исходными данными. Проверки качества и мониторинг нужны здесь для конкретных задач: заметить потери и дубли, найти причину расхождения, проверить результат своей правки.
Начните с запуска по README репозитория, затем прочитайте путеводитель по стенду и переходите к учебным заданиям. В основной программе семь ступеней: пять витрин DM, свой график в Superset, самостоятельная нарезка сессий, изменение расчета сессий в конвейере, проверки и обработка заказов, разбор сырых событий, мониторинг. Факультативные расследования можно взять после основной программы.
Когда большую курсовую считаем пройденной:
- выполнены семь ступеней основной программы и проверки из заданий;
- пять учебных витрин проходят
homework_check, в Superset построен свой график; - можете проследить путь события от Kafka до отчета, объяснить свои изменения и показать, как проверяли их корректность.
Если вы нашли этот роадмап в интернете и хотите пройти его не в одиночку, а с поддержкой ментора, можно присоединиться ко мне.
Что даёт менторство:
- структурный план прохождения роадмапа под вашу ситуацию;
- разбор вопросов по SQL / DWH / Airflow и другим темам из этого документа;
- разбор домашних заданий и код-ревью;
- помощь с подготовкой к собеседованиям (резюме, мок-интервью).
Как записаться
Просто напишите мне в Telegram: @dementev_dev
со словами «Хочу пройти роадмап с ментором» — дальше всё обсудим.
Цель блока — сформировать «опыт от 2 лет» и уметь корректно его показать в резюме и на собеседовании.
- Видео от ОМ по составлению резюме - Как накрутить опыт в резюме | «Ультимативный гайд» @digital_ninja - Как писать резюме, чтобы его читали - доклад - Boosty - Как грамотно продать себя на собеседовании / Созвон сообщества - Boosty
- Практика: совместная работа над резюме — ментор помогает переработать опыт, сформировать убедительную карьерную историю и подготовиться к вопросам по ней.
- Как подтвердить опыт без трудовой / Хабр против работяг
- Практика: мок-собеседования с ментором — тренировка ответов, разбор слабых мест, психологическая подготовка к реальным интервью.
- Как успешно пройти испытательный срок в IT | «Ультимативный гайд» c @digital_ninja - Youtube
- Испытательный срок - доклад - Boosty
Когда блок подготовки к собеседованиям считаем пройденным:
- у вас есть актуальное резюме под DE с понятными примерами проектов вместо «пустого» опыта;
- вы умеете искать и отбирать вакансии на HH и Habr Карьера, адаптируя отклики под конкретную позицию;
- вы прошли хотя бы пару мок-собеседований, получили обратную связь и по результатам доработали резюме и стратегию поиска.
После двух курсовых можно расширить стек: попробовать обработку файлов в Lakehouse и управление SQL-моделями через dbt. Выбирайте тему под задачи, с которыми хотите работать.
Lakehouse — архитектурный подход, который соединяет гибкость Data Lake с гарантиями классического DWH.
В классическом DWH данные и вычисления живут внутри одной СУБД, в её закрытом формате. В Lakehouse они разделены. Данные лежат файлами в дешёвом хранилище (обычно объектном, вроде S3). Открытый табличный формат (Iceberg, Delta, Hudi) добавляет поверх файлов привычные по СУБД вещи: схемы, транзакции, историю изменений. А вычислительные движки (Spark, Trino, Flink и другие) подключаются к данным снаружи — хоть несколько разных к одним и тем же таблицам.
Роадмап фокусируется на классическом DWH-стеке, поэтому цель здесь — знакомство, но с настоящей практикой: стенд ниже собирает один из типовых наборов этого конструктора.
Материалы:
- Введение в тему: «Как не утонуть в данных: выбираем между DWH, Data Lake и Lakehouse» (Habr, Arenadata) — что такое Lakehouse, чем он отличается от классического DWH и Data Lake и зачем появился
- DataLearn: «Что такое Apache Spark» — введение в Spark с нуля, ~40 минут
Практика — курс «Lakehouse без магии» на стенде mini-lakehouse-lab (Spark + Iceberg + Trino + MinIO, всё локально в Docker, без облаков и регистраций):
- 8 модулей на ~12–15 часов самостоятельной работы; в каждом — объяснение, демонстрация, задание и checkpoint;
- пайплайн
raw → bronze → silverна реальном датасете NYC Taxi; - одна таблица из двух движков: запись через Spark, чтение через Trino — и почему это работает без копирования данных;
- schema evolution, time travel и обслуживание таблиц (compaction, expire_snapshots) — с параллелями к знакомым VACUUM/REORGANIZE из мира Postgres/Greenplum.
Глубже про Iceberg (опционально, лучше после практики на стенде):
- «Как на самом деле работает Apache Iceberg» — Владимир Озеров, HighLoad Channel (Youtube)
- Введение в устройство Parquet и Iceberg (Habr, VK Tech) — подробный и местами непростой разбор форматов изнутри
- Введение в Apache Iceberg: основы, архитектура, как работает
- Spark + Iceberg in 1 Hour: Memory Tuning, Joins, Partition (Youtube, англ.)
dbt (data build tool) — инструмент для трансформации данных в хранилище.
Мы рассматриваем его как альтернативу «ручному» написанию сложных CTE и для понимания современного подхода к моделированию данных как кода.
Материалы:
Практика:
- Клонировать jaffle-shop, установить dbt-duckdb, прогнать
dbt build,dbt test,dbt docs generate && dbt docs serve— этого достаточно, чтобы увидеть весь цикл.
Когда блок расширенных навыков считаем пройденным:
Оценивайте выбранную тему по результату практики:
- для Lakehouse можете записать таблицу через Spark, прочитать ее через Trino и объяснить роль Iceberg, каталога и объектного хранилища;
- для dbt можете изменить SQL-модель, выполнить сборку и тесты, посмотреть зависимости в документации проекта.
- Все ветви дохода в IT / Полный гайд по деньгам
- Гайд как писать отзывы
- Гайд по Антистрессу
- ananevsyu/SandBox_DB_public: Песочница для изучения различных технологий связанных с инженерией данных - Клон проекта dementev_dev/sandbox_db_public-форк
- System Design. Разбор книги "Высоконагруженные приложения". Глава 1 - Youtube — отличный видео-конспект первой главы Клеппмана на русском.
- Индексы в БД - Youtube
- Алгоритмы: теория и практика. Методы – Stepik
- Алгоритмы: теория и практика. Структуры данных – Stepik
- Apache Hadoop для самых маленьких: HDFS, RACK-AWARENESS, репликация и Data Locality - Youtube
- Книга. Введение в Apache Kafka для системных аналитиков и проектировщиков интеграций
- Перевод документации dbt на русский язык