Всем привет! Меня зовут Артём Подвальный, я Data Engineer в Ozon Tech. Мои основные задачи — это сбор и объединение данных из разных источников для обучения моделей, которые определяют порядок выдачи в поиске. До этого я занимался дата-инженерными задачами в SMLab (команда персональных рекомендаций).
Когда я только начинал свой путь в профессии, мне казалось, что вокруг полный хаос — в блогах, курсах и вакансиях роль дата-инженера описывали настолько по-разному, что было сложно понять, с чего начать и куда двигаться дальше. Именно тогда мне пришла в голову идея: собрать понятный и честный роадмап, который поможет новичкам влиться в профессию, а тем, кто уже стартанул, — сориентироваться, как расти дальше.
По моим наблюдениям, дата-инженеры — это те, кто строит фундамент всей работы с данными: они собирают, обрабатывают, хранят и передают данные в аналитические системы. В этом roadmap я поделюсь, как самому стать таким специалистом, какие навыки реально важны на разных этапах и чего обычно ждут на собеседованиях. Всё — из моего опыта, историй коллег и реальных требований с рынка.
Стажёр
На стажёрской позиции от тебя никто не ждёт, что ты будешь разбираться во всех тонкостях работы дата-инженера — в том, как строятся пайплайны, обрабатываются большие объёмы данных, настраиваются хранилища или поднимаются стриминговые системы. Это всё приходит с опытом. На старте важнее другое: понимание базового Python и SQL. Без них будет сложно разобраться даже в самых простых задачах. Так что, если хочешь вкатиться в Data Engineering — начни именно с этого. И самое главное — желание учиться!
Python
1. Базовый синтаксис, алгоритмы и структуры данных.
Важно освоить базовый синтаксис, уметь работать с типами данных (списки, словари), циклами, функциями. Плюс ко всему необходимо умение писать простенькие алгоритмы, знать основы структур данных. С этим хорошо поможет курс «Алгоритмы и структуры данных — Sem_1» и задачи уровня medium на Leetcode — отличный способ подготовиться к собеседованиям и улучшить алгоритмическое мышление.
2. Основы ООП.
Надо иметь понимание ключевых понятий: класс, объект, наследование, инкапсуляция, полиморфизм. На стажёрском уровне обычно достаточно базовой теории, но лучше иметь и минимальный практический опыт. Подтянуть эти знания поможет курс «Продвинутое программирование на Python».
SQL
На собеседовании обязательно будут задачи и вопросы по SQL, вот что надо знать.
1. Принципы реляционных СУБД
Что такое таблицы, индексы, первичные и внешние ключи, ACID, нормальные формы. Почему оптимизация запросов так важна. Кратко тут — «Введение в базы данных».
2. Простые запросы
Уметь уверенно использовать SELECT, WHERE, GROUP BY, ORDER BY, простые JOIN’ы, агрегирующие функции (COUNT, SUM, MAX/MIN). Научиться писать запросы, понимать, как они работают, поможет отличный интерактивный тренажёр с теорией от Stepik.
Много стажёрских вакансий выкладывается на каналах Data Engineer Работа Вакансии, Data Engineer Jobs.
Джун
Чтобы выйти на уровень джуна, уже нужно чуть больше, чем просто знание синтаксиса. Хорошо, если за плечами есть пара хакатонов, pet-проекты или стажировка — всё, что показывает, что ты не просто учился, а реально что-то делал руками.
Для меня таким опытом стала лаборатория по работе с человеческими геномами при моем университете(МФТИ), где я писал пайплайны для обработки данных ДНК. Тогда я впервые столкнулся с реальными терабайтами, сложными форматами и специфичными инструментами для анализа и понял, что дата-инженерия — это то, что мне действительно интересно.
На этом этапе от тебя ждут более уверенного владения Python и SQL, а ещё — базового понимания, что такое Spark и зачем он нужен, как работают пайплайны и зачем вообще нужны инструменты из мира Big Data.
1. Расширенная работа с SQL
Оконные функции (OVER, PARTITION BY, RANK, ROW_NUMBER).
Типы джойнов «под капотом» (Nested Loop, Hash Join, Merge Join) и понимание различий междуними — «Что такое merge join, hash join и nested loop с примером на PostgreSQL», gelovolro / Дзен.
Принципиальные отличия реляционных и нереляционных (NoSQL) баз — «Виды баз данных. Большой обзор типов СУБД» / Хабр.
2. Основные инструменты дата-инженера
Знать желательно, но в целом только поверхностно:
уровни хранения: Data Lake, Data Mart, Data Warehouse(DWH), витрины и т. д. Понимать, зачем они нужны и как взаимосвязаны;
оркестраторы: Airflow как самый популярный инструмент для автоматизации пайплайнов (DAG, операторы, сенсоры);
Big Data-концепции: MapReduce, HDFS, Spark, ETL/ELT, OLTP vs. OLAP — что это такое, почему появилось и чем отличается от классического подхода.
Опыт написания pet-проекта (даже если он небольшой) может сильно облегчить собеседование. Покажите, что вы не только «прочитали теорию», но и применяли её на практике.
Полезные ресурсы для стажёров и джунов
Кратко о полезных Telegram-каналах:
Data Engineer LAB — краткие обзоры инструментов дата-инженера с ссылками на первоисточники и фокусом на то, что спрашивают на собеседованиях.
Get Rejected - автор канала прошел более 100+ с собеседований по Data Engineering'у и раскрыл вилки по всем компаниям, так же собеседуется за рубежом. Хороший канал чтобы быть в курсе реальных вилок на рынке.
Что-то на инженерном— автор делится полезной информацией об актуальных инструментах, техниках оптимизаций и разбирает вопросы с собеседований.
Дата инженеретта— там разбираются практические задачи из рабочих кейсов, обсуждаются архитектуры платформ данных, публикуются полезные инсайты из дата-книжек и мысли после дата-митапов
Databases Secrets — фокус на базы данных: реляционные, NoSQL и всё, что с ними связано. Часто публикуют разъяснения нюансов оптимизации запросов и внутренних механизмов СУБД.
It пингвин — разбор собесов, задачи (jun/mid/sen) с решениями, полезные материалы, обзоры технологий и архитектур.
Мидл (Middle)
Мидл — это уже более серьёзный уровень. Ожидается, что вы можете уверенно вести проект, оптимизировать запросы и пайплайны, а не просто «делать, как умею».
Мой путь от джуна до мидла оказался довольно стремительным — во многом благодаря опыту в SMLab. Там мне с самого начала доверили разные задачи, и я быстро «нащупал» руками мир дата-инженерии. Уже первой моей задачей было спроектировать сбор логов рекомендательной системы и построить аналитическую витрину. Для новичка — это был настоящий челлендж. Но именно этот проект дал мне возможность погрузиться в работу с кучей реальных инструментов и получить первую уверенность в профессии.
Теперь о том, каким набором инструментов и навыков желательно владеть (наиболее распространённые требования).
1. Алгоритмы и структуры данных
Аналогично джуну.
2. Продвинутый SQL
Многослойные запросы с оконными функциями, CTE, подзапросами.
Оптимизация: изучайте планы выполнения, собирайте статистику, экспериментируйте с индексами.
StrataScratch — отличный форум, чтобы прокачать SQL за счёт задач от топовых IT-компаний.
3. HDFS и MapReduce
Понимайте механику MapReduce: что такое map, reduce, shuffle, combiner.
-
Arenadata HDFS-документация для более детального разбора устройства.
В HDFS в Озоне мы собираем и храним датасеты для обучения моделей ранжирования.
4. Оптимизация в реляционных СУБД
Знать физические планы выполнения (Nested Loop, Hash Join, Merge Join).
Подборка статей по оптимизации — Как оптимизировать SQL-запросы для СУБД | AppMaster, Как оптимизировать SQL-запросы для снижения нагрузки на БД.
5. Spark
Почему Spark быстрее MapReduce, что такое драйвер и экзекьюторы.
-
Архитектура (RDD, DataFrame API, Dataset API), broadcast, shuffle, Catalyst Optimizer.
Хорошее объяснение — в этой статье. В этом туториале мы с коллегами постарались расписать всё, что нужно знать по Спарк, что спрашивают на собеседованиях.
В Ozon Tech мы постоянно используем Спарк для задач агрегации данных из различных источников — Clickhouse, Vertica и др.
6. Kafka
Как устроены партиции, репликация, consumer groups. Почему Kafka такая надёжная и масштабируемая система? Вот хорошая статья — «Apache Kafka: основы технологии». Именно через Кафку в Ozon доставляются все итоговые фичи в горячее хранилище данных перед обучением.
7. Оркестраторы
Airflow: создание сложных DAG’ов, написание кастомных операторов, работа с несколькими типами сенсоров — хорошо поясняется тут
8. Слои хранения данных
Data Lake, Data Mart, DWH, витрины и зачем они нужны.
Концепции Инмона, Кимбэлла, Data Vault — основные подходы к проектированию хранилищ.
Понимать, что такое SCD (особенно SCD2), как хранить медленно меняющиеся измерения.
9. NoSQL-базы данных
Документоориентированные базы (MongoDB), колоночные (ClickHouse, Vertica), key-value (Redis). В последнее время стало появляться всё больше вакансий, требующих понимания ClickHouse, поэтому хорошо бы представлять, как устроена эта СУБД, в чем особенности хранения данных, какие движки использует, как они работают, что такое мутации, разрежённые индексы и прочее.
Краткая сводка по грейдам
Грейд |
Ключевые навыки и зоны ответственности |
«Качественный скачок», после которого пора на следующий уровень |
Стажёр |
• Базовый Python: синтаксис, списки/словари, функции • SQL-минимум: SELECT, JOIN, GROUP BY, простые агрегации • Понимание реляционных БД (таблица, индекс, ACID) • Чтение чужого кода, выполнение задач по чёткому ТЗ |
Самостоятелен в написании простого ETL-скрипта/запроса без пошаговых инструкций |
Junior |
• Уверенный Python (+ тесты, virtualenv, logging) • Расширенный SQL: оконки, CTE, чтение EXPLAIN-плана • First touch с Airflow, Spark/Hadoop, Data Lake vs DWH • Pet-проект или стажировка с деплоем пайплайна • Участие в code-review, задаёт правильные вопросы |
Проектирует и реализует небольшой пайплайн «под ключ» + оптимизирует его по времени/ресурсам |
Middle |
• Продвинутый SQL-тюнинг, индексы, партиционирование • Spark: RDD/DataFrame API, борьба с shuffle, broadcast • Kafka: партиции, consumer groups, ретеншн-политики • Airflow: кастомные операторы, SLA, алерты • Архитектура хранилищ (Data Lake ↔ DWH, SCD2, Инмон/Кимбэлл) • CI/CD, мониторинг, менторство джунов |
Отвечает за часть архитектуры, берёт на поддержку критичный прод-пайплайн и держит SLA |
Заключение
Data Engineering — это непрерывное развитие. Стажёрам и джунам важно прокачать Python и SQL, а затем постепенно добавлять знания о Data-инструментах и конфигурации пайплайнов. Мидлы уже уверенно работают с распределёнными системами, оптимизируют запросы и решают более сложные задачки. Сеньоры становятся «архитекторами» — разбираются в устройстве всей системы и умеют строить решения, которые масштабируются под высокие нагрузки и работают годами.
Не бойтесь пробовать, ошибаться и учиться на этих ошибках! Делайте pet-проекты, участвуйте в хакатонах, решайте алгоритмические задачки, экспериментируйте с оркестраторами и базами данных. Так вы станете сильным дата-инженером, которого хотят видеть в команде топовые компании.
Удачи на вашем пути!