Кто такие дата-инженеры, и как ими становятся?
И снова здравствуйте! Заголовок статьи говорит сам о себе. В преддверии старта курса «Data Engineer» предлагаем разобраться в том, кто же такие дата-инженеры. В статье очень много полезных ссылок. Приятного прочтения.

Простое руководство о том, как поймать волну Data Engineering и не дать ей затянуть вас в пучину.
Складывается впечатление, что в наши дни каждый хочет стать дата-саентистом (Data Scientist). Но как насчет Data Engineering (инжиниринга данных)? По сути, это своего рода гибрид дата-аналитика и дата-саентиста; дата-инженер обычно отвечает за управление рабочими процессами, конвейерами обработки и ETL-процессами. Ввиду важности этих функций, в настоящее время это очередной популярный профессиональный жаргонизм, который активно набирает обороты.
Высокая зарплата и огромный спрос — это лишь малая часть того, что делает эту работу чрезвычайно привлекательной! Если вы хотите пополнить ряды героев, никогда не поздно начать учиться. В этом посте я собрал всю необходимую информацию, чтобы помочь вам сделать первые шаги.
Итак, начнем!
Что такое Data Engineering?
Честно говоря, нет лучшего объяснения, чем это:
«Ученый может открыть новую звезду, но не может ее создать. Ему придется просить инженера сделать это за него.»
–Гордон Линдсей Глегг
Таким образом, роль дата-инженера достаточно весома.
Из названия следует, что инженерия данных связана с данными, а именно с их доставкой, хранением и обработкой. Соответственно, основная задача инженеров — обеспечить надежную инфраструктуру для данных. Если мы посмотрим на ИИ-иерархию потребностей, инженерия данных занимает первые 2–3 этапа: сбор, перемещение и хранение, подготовка данных.

Чем занимается инженер данных?
С появлением больших данных сфера ответственности резко изменилась. Если раньше эти эксперты писали большие SQL-запросы и перегоняли данные с помощью таких инструментов, как Informatica ETL, Pentaho ETL, Talend, то теперь требования к дата-инженерам повысились.
Большинство компаний с открытыми вакансиями на должность дата-инженера предъявляют следующие требования:
- Отличное знание SQL и Python.
- Опыт работы с облачными платформами, в частности Amazon Web Services.
- Предпочтительно знание Java/Scala.
- Хорошее понимание баз данных SQL и NoSQL (моделирование данных, хранение данных).
Список используемых в этом случае инструментов может отличаться, все зависит от объема этих данных, скорости их поступления и неоднородности. Большинство компаний вообще не сталкиваются с большими данными, поэтому в качестве централизованного хранилища, так называемого хранилища данных, можно использовать базу данных SQL (PostgreSQL, MySQL и т. д.) с небольшим набором скриптов, которые направляют данные в хранилище.
IT-гиганты, такие как Google, Amazon, Facebook или Dropbox, предъявляют более высокие требования: знание Python, Java или Scala.
- Опыт работы с большими данными: Hadoop, Spark, Kafka.
- Знание алгоритмов и структур данных.
- Понимание основ распределенных систем.
- Опыт работы с инструментами визуализации данных, такими как Tableau или ElasticSearch, будет большим плюсом.
Дата-инженеры Vs. дата-саентисты

Ладно, это было простое и забавное сравнение (ничего личного), но на самом деле все намного сложнее.
Во-первых, вы должны знать, что существует достаточно много неясности в разграничении ролей и навыков дата-саентиста и дата-инженера. То есть, вы легко можете быть озадачены тем, какие все-таки навыки необходимы для успешного дата-инженера. Конечно, есть определенные навыки, которые накладываются на обе роли. Но также есть целый ряд диаметрально противоположных навыков.
Наука о данных — это серьезное дело, но мы движется к миру с функциональной дата саенс, где практикующие способны делать свою собственную аналитику. Чтобы задействовать конвейеры данных и интегрированные структуры данных, вам нужны инженеры данных, а не ученые.
Является ли дата-инженер более востребованным, чем дата-саентист?
— Да, потому что прежде чем вы сможете приготовить морковный пирог, вам нужно сначала собрать, очистить и запастись морковью!
Дата-инженер разбирается в программировании лучше, чем любой дата-саентист, но когда дело доходит до статистики, все с точностью до наоборот.
Но вот преимущество дата-инженера: без него/нее ценность модели-прототипа, чаще всего состоящей из фрагмента кода ужасного качества в файле Python, полученной от дата-саентиста и каким-то образом дающей результат, стремится к нулю.
Без дата-инженера этот код никогда не станет проектом, и никакая бизнес-проблема не будет эффективно решена. Инженер данных пытается превратить это все в продукт.
Основные сведения, которые должен знать дата-инженер

Итак, если эта работа пробуждает в вас свет и вы полны энтузиазма — вы способны научиться этому, вы можете овладеть всеми необходимыми навыками и стать настоящей рок-звездой в области разработки данных. И, да, вы можете осуществить это даже без навыков программирования или других технических знаний. Это сложно, но возможно!
Каковы первые шаги?
Вы должны иметь общее представление о том, что есть что.
Прежде всего, Data Engineering относится к информатике. Конкретне — вы должны понимать эффективные алгоритмы и структуры данных. Во-вторых, поскольку дата-инженеры работают с данными, необходимо понимание принципов работы баз данных и структур, лежащих в их основе.
Например, обычные B-tree SQL базы данных основаны на структуре данных B-Tree, а также, в современных распределенных репозиториях, LSM-Tree и других модификациях хеш-таблиц.
* Эти шаги основаны на замечательной статье Адиля Хаштамова. Итак, если вы знаете русский язык, поддержите этого автора и прочитайте его пост.
1. Алгоритмы и структуры данных
Использование правильной структуры данных может значительно улучшить производительность алгоритма. В идеале, мы все должны изучать структуры данных и алгоритмы в наших школах, но это редко когда-либо освещается. Во всяком случае, ознакомится никогда не поздно.
Итак, вот мои любимые бесплатные курсы для изучения структур данных и алгоритмов:
- От простых к сложным: Структуры Данных(Udemy)
- Алгоритмы, Часть I (Coursera)
- Алгоритмы, Часть II (Coursera)
- Чтобы улучшить свои навыки, используйте Leetcode.
- Введение в системы баз данных.
- Продвинутые системы баз данных.
Вся наша жизнь — это данные. И для того, чтобы извлечь эти данные из базы данных, вам нужно «говорить» с ними на одном языке.
SQL (Structured Query Language — язык структурированных запросов) является языком общения в области данных. Независимо от того, что кто-то говорит, SQL жил, жив и будет жить еще очень долго.
Если вы долгое время находились в разработке, вы, вероятно, заметили, что слухи о скорой смерти SQL появляются периодически. Язык был разработан в начале 70-х годов и до сих пор пользуется огромной популярностью среди аналитиков, разработчиков и просто энтузиастов.
Без знания SQL в инженерии данных делать нечего, так как вам неизбежно придется создавать запросы для извлечения данных. Все современные хранилища больших данных поддерживают SQL:
- Amazon Redshift
- HP Vertica
- Oracle
- SQL Server
Для анализа большого слоя данных, хранящихся в распределенных системах, таких как HDFS, были изобретены механизмы SQL: Apache Hive, Impala и т. д. Видите, он не собирается никуда уходить.
Как выучить SQL? Просто делай это на практике.
Для этого я бы порекомендовал ознакомиться с отличным учебником, который, кстати, бесплатный, от Mode Analytics.
- Средний уровень SQL
- Объединение данных в SQL
3. Программирование на Python и Java/Scala
Почему стоит изучать язык программирования Python, я уже писал в статье Python vs R. Выбор лучшего инструмента для AI, ML и Data Science. Что касается Java и Scala, большинство инструментов для хранения и обработки огромных объемов данных написаны на этих языках. Например:
- Apache Kafka (Scala)
- Hadoop, HDFS (Java)
- Apache Spark (Scala)
- Apache Cassandra (Java)
- HBase (Java)
- Apache Hive (Java)
Чтобы погрузиться в язык Scala, вы можете прочитать Программирование в Scala от автора языка. Также компания Twitter опубликовала хорошее вводное руководство — Scala School.
Что касается Python, я считаю Fluent Python лучшей книгой среднего уровня.
4. Инструменты для работы с большими данными
Вот список самых популярных инструментов в мире больших данных:
- Apache Spark
- Apache Kafka
- Apache Hadoop (HDFS, HBase, Hive)
- Apache Cassandra
- Введением в Hadoop может служить Полное руководство по освоению Hadoop (бесплатно).
- Наиболее полное руководство по Apache Spark для меня — Spark: полное руководство.

Знание хотя бы одной облачной платформы находится в списке базовых требований, предъявляемым к соискателям на должность дата-инженера. Работодатели отдают предпочтение Amazon Web Services, на втором месте — облачная платформа Google, и замыкает тройку лидеров Microsoft Azure.
Вы должны хорошо ориентироваться в Amazon EC2, AWS Lambda, Amazon S3, DynamoDB.
6. Распределенные системы
Работа с большими данными подразумевает наличие кластеров независимо работающих компьютеров, связь между которыми осуществляется по сети. Чем больше кластер, тем больше вероятность отказа его узлов-членов. Чтобы стать крутым экспертом в области данных, вам необходимо вникнуть в проблемы и существующие решения для распределенных систем. Эта область старая и сложная.
Эндрю Таненбаум считается пионером в этой области. Для тех, кто не боится теории, я рекомендую его книгу «Распределенные системы», для начинающих она может показаться сложной, но это действительно поможет вам отточить свои навыки.
Я считаю «Проектирование приложений с интенсивным использованием данных» под авторством Мартина Клеппманна лучшей вводной книгой. Кстати, у Мартина есть замечательный блог. Его работа поможет систематизировать знания о построении современной инфраструктуры для хранения и обработки больших данных.
Для тех, кто любит смотреть видео, на Youtube есть курс Распределенные компьютерные системы.
7. Конвейеры данных

Конвейеры данных — это то, без чего вы не можете жить в качестве дата-инженера.
Большую часть времени дата-инженер строит так называемую пайплайн дату, то есть создает процесс доставки данных из одного места в другое. Это могут быть пользовательские сценарии, которые идут к API внешнего сервиса или делают SQL-запрос, дополняют данные и помещают их в централизованное хранилище (хранилище данных) или хранилище неструктурированных данных (озера данных).
Подводя итог: основной чеклист дата-инженера

Подытожим — необходимо хорошее понимание следующего:
- Информационные системы;
- Разработка программного обеспечения (Agile, DevOps, Design Techniques, SOA);
- Распределенные системы и параллельное программирование;
- Основы баз данных — планирование, проектирование, эксплуатация и устранение неисправностей;
- Проектирование экспериментов — A/B-тесты для доказательства концепций, определения надежности, производительности систем, а также для разработки надежных путей для оперативного предоставления хороших решений.
И, наконец, последнее, но очень важное, что я хочу сказать.
Путь становления Data Engineering не так прост, как может показаться. Он не прощает, фрустрирует, и вы должны быть готовы к этому. Некоторые моменты в этом путешествии могут подтолкнуть вас все бросить. Но это настоящий труд и учебный процесс.
Просто не приукрашивайте его с самого начала. Весь смысл путешествия в том, чтобы узнать как можно больше и быть готовым к новым вызовам.
Вот отличная картинка, с которой я столкнулся, которая хорошо иллюстрирует этот момент:

И да, не забудьте избегать выгорания и отдыхать. Это тоже очень важно. Удачи!
Как вам статья, друзья? Приглашаем на бесплатный вебинар, который состоится уже сегодня в 20.00. В рамках вебинара обсудим, как построить эффективную и масштабируемую систему обработки данных для небольшой компании или стартапа с минимальными затратами. В качестве практики познакомимся с инструментами обработки данных Google Cloud. До встречи!
- Data Engineering
- Data Science
- Big Data
- Data
- Towards Data Science
- Блог компании OTUS
- Big Data
- Хранение данных
- Data Engineering
Data Engineer

Data Engineer работает в сфере информационной инженерии, занимается доставкой, хранением и обработкой данных. Профессия имеет ярко выраженные технические черты, подойдет для тех, кто увлекается информационными технологиями. Кстати, недавно центр профориентации ПрофГид разработал точный тест на профориентацию, который сам расскажет, какие профессии вам подходят, даст заключение о вашем типе личности и интеллекте.
Краткое описание
Появление Big Data изменило стратегию работы с данными. Data Analyst и Scientist занимаются анализом и извлечением данных из огромных массивов, а Data Engineer специализируется на разработке структуры для Big Data и других типов данных. Работа связана с большим количеством профессиональных компетенций, но она популярна из-за достойного уровня оплаты труда и колоссальной востребованности на кадровом рынке.
Как узнать, подходит ли вам профессия «Data Engineer»?

Data Engineer востребован везде, где есть обилие источников данных, работа с которыми вместе с тем является нетривиальной задачей. Профессия очень распространена, потому что необходимость в правильном сборе и хранении данных увеличилась вслед за развитием предиктивной аналитики (предиктивная, или прогнозная, предсказательная, аналитика – класс методов анализа больших данных, которые используются для прогнозирования поведения объектов и субъектов с целью принятия оптимальных решений. – Прим. ред.), для работы которой необходимы чистые данные. Потому что чем меньше в исходных данных дефектов, тем лучше модель будет выявлять закономерности.

Никита Васильев
Senior Data Engineer, Inno.tech
Читайте также

Особенности профессии
Data Engineer занимается извлечением, последующим преобразованием, загрузкой и обработкой данных. Нередко Data Engineer и Data Scientist путают, однако это разные профессии. Первый специалист – гуру Big Data и безупречно знает программирование, второму нет равных в работах, связанных с аналитическими процессами и алгоритмами. Data Engineer – профессиональный программист, он пишет код, без которого невозможно построить пайплайн данных.
Мечтаешь создать свою игру?
Воплоти мечту в реальность вместе с XYZ School!

ЗИМНЯЯ РАСПРОДАЖА SKILLBOX
Cкидки до 60% на все курсы всех направлений, а также курс в подарок (с выполнением ДЗ) при покупке!
Data Engineer в первую очередь автоматизирует и в дальнейшем поддерживает извлечение данных (Extract) их преобразование (Transform) из различных источников, таких как сырые логи в JSON, таблицы в базах данных, файлы в сетевых каталогах и так далее. Затем сохраняет (Load) их в том виде, в котором ими будут пользоваться конечные потребители. Это могут быть Data Scientists (DS), Data Analyst, Buisness analyst и так далее. А весь процесс получил аббревиатурное название ETL (Extract, Transform, Load).
Во вторую очередь обязанность Data Engineer – это формирование различных фреймворков для работы с данными и анализа их качества, которые упрощают порог вхождения, а также гарантируют, что все данные будут консистентны. Также часто в требованиях к вакансии можно встретить выкатку моделей DS в продакшен, то есть в целевое использование.
Технологии, с которыми работает Data Engineer, зависят от того, какие из них необходимы в компании. В основном это различные базы данных, инструменты ETL, а из языков программирования популярны Python и Scala.

Никита Васильев
Senior Data Engineer, Inno.tech
Data Engineers востребованы во всех сферах бизнеса, например, в банковском секторе, который имеет тысячи хранилищ информации с данными, касающимися клиентов, транзакций и других финансовых операций. Конкуренция в сфере информационной инженерии невысокая, как утверждают российские HR-специалисты. Сейчас отечественный рынок испытывает потребность в опытных Data Engineers, поэтому работу долго искать не придется.

Яндекс.Практикум, скидки 20%
Приходите учиться любой профессии со скидкой 20% в честь сами знаете чего!

ЗИМНЯЯ РАСПРОДАЖА SKILLBOX
Cкидки до 60% на все курсы всех направлений, а также курс в подарок (с выполнением ДЗ) при покупке!

Новогодняя акция! Скидки до 60% и «Тайный Санта»
Всеми любимый «Тайный Санта» здесь: те, кто приобрел у нас курс, получат курс в подарок и смогут подарить мини-курс своему другу.
Плюсы и минусы профессии
Плюсы
- Должность Data Engineer высокооплачиваемая.
- Работодатели заинтересованы в опытных Data Engineer, поэтому много возможностей устроиться в крупную отечественную или зарубежную компанию.
- Работа достаточно интересная.
- Привыкший работать в режиме многозадачности Data Engineer может реализовать свой потенциал в смежных сферах деятельности.
Минусы
- Многие компании заинтересованы в Data Engineer, но четких требований и списка должностных обязанностей для таких специалистов нет – это порождает недопонимание между работодателями и кандидатами на трудоустройство или даже уже нанятыми сотрудниками.
Важные личные качества
Data Engineer – ответственный и очень педантичный специалист, которому надо уметь трудиться в формате многозадачности. Работа с данными требует внимательности, развитого технического мышления, аналитических способностей. Data Engineer нужно умееть работать в команде.
Обучение на Data Engineer
Профессия новая, и пока требования к уровню образования размыты. Конечно, хорошей базой будет вузовская подготовка по направлениям, связанным с программной инженерией. После окончания университета или института, скорее всего, придется продолжить обучение на отечественных и зарубежных курсах.
Лучшие вузы для Data Engineer
- МГТУ им. Н. Э. Баумана.
- НИЯУ МИФИ.
- РТУ МИРЭА.
- НИУ ВШЭ.
- КубГТУ.

Курсы
GeekUniversity
На факультете Data Engineering можно освоить профессию с нуля. Программа рассчитана на низкий порог вхождения, обучение позволяет будущим Data Engineering приобрести год опыта. Курс разработан в содружестве с онлайн-университетом Mail.ru Group. Первые полгода студенты обучаются бесплатно, дальнейшая стоимость составляет 4 990 руб. в месяц. Выпускники получают сертификат и диплом о профессиональной переподготовке.
Кто такой Data Engineer и как им стать


Максим Керемет Эксперт в Data Engineering.
Дата-инженер (Data Engineer) — это человек, который организует потоки загрузки и обрабатывает данные. Простыми словами, это инженер данных, который занимается тем, чтобы данные в компьютерах компании правильно передвигались и хранились, как книги на полках библиотеки. Это помогает другим людям легче находить и использовать эти данные для принятия решений и работы. Как он это делает, что для этого нужно уметь, и насколько такая деятельность востребована, разбираемся с дата-инженером X5 Retail Group Максимом Кереметом.

Освойте профессию «Data Scientist» на курсе с МГУ
Data Scientist с нуля до PRO
Освойте профессию Data Scientist с нуля до уровня PRO на углубленном курсе совместно с академиком РАН из МГУ. Изучите продвинутую математику с азов, получите реальный опыт на практических проектах и начните работать удаленно из любой точки мира.

25 месяцев
Data Scientist с нуля до PRO
Создавайте ML-модели и работайте с нейронными сетями
6 490 ₽/мес 10 817 ₽/мес

Что делает дата-инженер?
Дата-инженер участвует в начальной и финальной стадиях анализа данных, обеспечивает их работу на инфраструктуре компании. Он занимается ETL-процессами, то есть обрабатывает данные: достает (extract) их из сырых источников, трансформирует (transform) и загружает (load). После предварительной обработки, очистки от повторов, ошибок, ненужных уточнений, он автоматизирует выполнение скриптов и, если нужно, настраивает мониторинги, алерты (сигналы о том, что в моделях что-то пошло не так), задает расписание, по которому сервис или программа будут работать с данными (шедуллит). Задачи в компаниях могут отличаться: где-то инженер только обрабатывает данные, а где-то выполняет и программистскую работу: внедряет новые модели и переучивает старые. Помимо сбора и обработки инженер данных организует хранение данных. Для этого он строит архитектуру хранилищ – базы данных с таблицами, в которых они разбиты по смыслу. Дата-сайентистам это облегчает доступ к обработанным наборам данных (признакам), с помощью хранилища проще и быстрее масштабировать модели.

Чем дата-инженер отличается от дата-сайентиста?
Задачи дата-сайентиста и дата-инженера находятся на разных этапах работы с данными. Дата-сайентист – это исследователь, который придумывает, как решить задачу бизнеса. Например, прогнозирует, когда покупатель придет в магазин в следующий раз. Он готовит дата-сет, извлекает признаки, экспериментирует с моделями, делает пилотный запуск модели. Для того, чтобы дата-сайентисту было с чем экспериментировать, дата-инженер готовит данные. Они обычно скрыты в хранилищах. Когда модель готова, дата-инженер масштабирует успешные решения на гораздо бОльшие объемы чем тренировочный датасет Модель также нужно периодически обновлять: делать отчеты, чтобы бизнес мог ежедневно использовать этот труд, по мере необходимости обновлять признаки. Этим тоже занимается дата-инженер.


Станьте дата-сайентистом на курсе с МГУ и решайте амбициозные задачи с помощью нейросетей
Где он нужен
- регулярно собирает данные приложения с устройств пользователей,
- собирает данные логов сервера, которые относятся к пользователю,
- создает точку API, которая отразит историю событий любого пользователя.
Для этого необходимо создать пайплайн (процесс сбора, трансформации и загрузки в базу данных), который в реальном времени сможет собрать логи приложений и сервера, проанализировать их и соотнести с конкретным пользователем. Проанализированные логи дата-инженер собирает в базу данных так, чтобы их можно было без труда запросить по API.
Насколько это востребовано
Из-за того, что данные растут в геометрической прогрессии, компании придумывают новые, более эффективные способы работы с ними. Для этого им нужны не только мощные платформы для хранения, но и сотрудники, которые оптимизируют процессы, поставляют уже подготовленные данные, ускоряя дальнейшую работу дата-сайентистов. Поэтому спрос на специалистов в этой сфере только увеличивается, а зарплаты в этом направлении – одни из самых высоких в IT.
Согласно отчету DICE о технических вакансиях за 2020 год количество вакансий дата-инженера выросло на 50% по сравнению в 2019 годом. Это самый большой показатель среди других профессий.

Сколько получает дата-инженер
Зарплаты зависят от уровня: в среднем джуниоры получают 100-150 тыс. руб, миддл-специалисты 150-250 тыс. руб, а синьор-профессионалы 250-300 тыс. руб, основываясь на данных из сообщества ODS.
Что ему нужно знать
По мнению Максима Керемета, на российском рынке дата-инженер – это человек, который может все по чуть-чуть: и программировать, и работать с базами данных, и провести несложную аналитику (построить дашборд в Power BI или Tableau), и самостоятельно написать приложение, которое может работать.
Традиционно дата-инженер работает с таблицами, поэтому ему необходимо знать, как писать SQL-запросы, разбираться в видах баз данных. В основном он сталкивается с реляционными (наборы данных, связанных между собой по значению) и колоночными (данные связаны не по строкам, а по колонкам) базами данных.
Наиболее популярная система управления реляционной БД – PostgreSQL, для колоночных – ClickHouse, он быстрый и используется для аналитики и логирования событий.
Дата-инженер должен хорошо знать Python: он умеет читать таблицы из источников на компьютере, понимает язык на уровне базовых структур, ООП. Python также нужен для того, чтобы писать веб-сервисы, чтобы в дальнейшем работать с продуктивизацией моделей. Кроме того, с помощью языка можно разрабатывать новые сервисы и модели, которые отслеживают стабильность уже работающих программ.
Плюсом будет знание Scala — язык эффективен в промышленных масштабах, когда становится важна скорость обработки данных. В этом Python уступает.
Нужно владеть инструментами экосистемы Hadoop (система управления базами данных Hive или фреймворк Spark) – они помогают работать с большими данными, которые невозможно обрабатывать на одном локальном компьютере из-за объемов и производительности. Для них используются кластерные машины с более мощными показателями.
Чтобы запускать уже готовые сервисы, не требующие доработки, на разных компьютерах, дата-инженеру нужно уметь использовать Docker. Он «упаковывает» сервис, написанный на локальном компьютере, в контейнер, и его можно воспроизводить на компьютере коллеги или кластерной машине.
А для автоматизации работы в команде дата-инженер использует GitLab.

Откуда приходят в дата-инженеры
- Из аналитики вне IT. Когда хочется автоматизировать и улучшить работу с таблицами и отчетами.
- Из аналитики в IT. Если уже знакомы с Python на базовом уровне и хочется развиваться в техническом направлении, научиться программировать.
Максим Керемет добавляет: «Можно переквалифицироваться из дата-сайентиста, если хочется больше развиваться с точки зрения программирования и построить какой-то сервис или продукт. Кроме того, если надоело постоянно выполнять разные ситуативные задачи и хочется сконцентрироваться на среднесрочных проектах на несколько месяцев, дата-инженер — хороший вариант».
Плюсы и минусы профессии
Плюсы:
- Высокие зарплаты.
- Дефицит специалистов не только в России, но и за рубежом. Из-за того, что компании только начинают понимать ценность таких сотрудников, вакансия редкая, а значит и конкуренция низкая.
- Широкое поле для развития в разных технических направлениях. «С навыками дата-инженера можно уйти в MLOps (введение моделей в продакшн). Можно статьDevOps– организовывать работу сервисов. Можно перейти в менеджмент: руководителем группы аналитиков или разработчиков и прокачивать софт-скиллы».
Минусы:
- К профессии нет четких и универсальных требований. В вакансиях компании часто взваливают на дата-инженера обязанности коллег дата-сайентистов или аналитиков. Максим поделился своим опытом работы в небольшом стартапе: «Из-за того, что компания маленькая, нет организационных процессов, СЕО мог позвонить мне в девять вечера. И чем больше я делал, тем больше на меня сваливалось. Я шел работать на Python, делать сервисы, работать с разными видами баз данных, а по факту два месяца писал SQL-запросы».
- Во время найма не всегда проверяют нужные навыки. Максим обратил внимание на закономерность: «Довольно распространенная практика, что людей тестируют на то, что не показывает их компетенцию. Проверяют знания алгоритмических задач, теории вероятности, которые проходят в техническом университете на первых курсах. Количество задач, которые ты решил по матстату и терверу не показывают, насколько ты умеешь ориентироваться в бизнес-представлениях, общаться с другими людьми, придумывать решение задачи и писать код».
Как начать
Новичкам без бэкграунда в IT попасть в профессию сложно, так как она требует серьезной технической подготовки: нужно писать хотя бы на Python, владеть инструментами автоматизации.
Для специалиста в этой области важны знания алгоритмов и структур данных. Алгоритмические задачи хорошо выстраивают мышление, знание синтаксиса языка и его возможностей. Алгоритмы данных можно изучить на бесплатном курсе на Coursera.
Кроме того, на Coursera можно познакомиться с базовыми понятиями, научиться строить пайплайны (выстраивать весь ETL-процесс переноса данных из одного места в другое), разобраться в том, что такое базы данных и как устроены системы облачных хранилищ.
Можно попробовать самостоятельно определить траекторию обучения, ориентируясь на Road map профессии. C ее помощью удобно систематизировать, какими навыками вы уже овладели, а какие нужно подтянуть или выучить с нуля.
Полезные ссылки:
- сабреддит про популярные вопросы профессии;
- митап DE or DIE, где обсуждают технические вопросы;
- сообщество в Telegram «Data Engineers»;
- Data Engineering Podcast, где к каждому выпуску прикладывают ссылки на обсуждаемые инструменты и кейсы.
Либо можно пройти полноценный курс по Data Engineering. На нем есть главное – практика, благодаря которой вы сможете не просто в теории разобраться с программами и продуктами, которыми используют в профессии, но отработать технологии на реальных задачах и применить их в проекте.
Data Engineer: как организовать большие данные на пользу бизнесу

Чтобы воспользоваться большими данными, сначала их нужно достать, упорядочить и подготовить к анализу. Когда аналитика проведена, их нужно где-то хранить, чтобы при надобности поднять. Все это обеспечивает дата-инженер
Об эксперте: Давид Григорян, ML Engineer в «МегаФоне», ментор онлайн-школы SkillFactory.
Кто такой дата-инженер
Дата-инженер (Data Engineer) — это специалист, который собирает и обрабатывает большие данные, загружает их в модель для анализа, а затем организовывает их хранение и дальнейшее использование в бизнесе. Это представитель самой быстрорастущей профессии на рынке Data Science. Если дата-сайентист — это исследователь-экспериментатор, то дата-инженер — это технический организатор. Он помогает дата-сайентистам, отделу маркетинга и руководству компании получить нужные данные быстро и просто.

Чем дата-инженер отличается от дата-сайентиста
В Data Science сферы ответственности разных специалистов могут пересекаться и накладываться. Из-за этого возникает путаница между профессиями дата-инженера, дата-сайентиста и дата-аналитика. Давид Григорян, ML Engineer в «МегаФоне»: «Очень часто сферы ответственности специалистов в Data Science могут пересекаться. Более того, в каждой компании под каждой позицией могут понимать разные вещи. Дата-аналитик — больше про работу с данными, построение статистических гипотез и вычисление важных показателей для бизнеса. Дата-сайентист занимается математической частью: пишет аналитические модели для решения задач бизнеса с использованием больших данных, экспериментирует и пишет статьи. А вот дата-инженер готовит данные, понимает их природу: где и как они лежат. Дата-инженеры, как правило почти не погружены в алгоритмы машинного обучения».

Так выглядит перечень задач дата-инженера и дата-сайентиста и точка их пересечения
Чем занимается дата-инженер
В процессе работы с данными дата-инженер присутствует на начальных и конечных этапах. Он занимается задачами, которые обозначают аббревиатурой ETL: достает данные (Extract), трансформирует и обрабатывает (Transform), загружает (Load). Его задача — организовать эти процессы в пайплайн («трубопровод», конвейерная последовательность обработки данных перед их загрузкой в модель), по которому будут двигаться потоки данных, чтобы их можно было использовать для принятия решений в компании. На конечном этапе работы с данными дата-инженер организует базу данных так, чтобы нужную информацию в любой момент можно было поднять и использовать снова. Например, в локальной службе доставки еды задачей дата-инженера будет собрать и рассортировать данные о заказах, времени доставки, чеках клиентов. Затем он сортирует и оформляет эти данные так, чтобы ими было удобно пользоваться и они постоянно обновлялись. Далее эти данные анализирует дата-сайентист, чтобы получить ответы на вопросы бизнеса и помочь руководству или маркетингу принимать решения. К примеру о том, как обновить меню, удержать клиентов при помощи программ лояльности, повысить средний чек, оптимизировать работу курьеров.
Какие навыки нужны дата-инженеру
- Знать SQL (Structured Query Language — язык структурированных запросов). Нужен, чтобы составлять запросы для извлечения данных.
- Программировать на Python, Java/Scala. Python пригодится в работе с таблицами, моделями, для создания веб-сервисов. На языках Java и Scala написаны все распространенные инструменты для работы с большими данными.
- Знать инструменты для работы с большими данными (Apache Spark, Kafka, Hadoop, Apache Cassandra).
- Знать типы баз данных (реляционные, колоночные), алгоритмов и структур для работы с ними.
- Уметь пользоваться Docker. Это инструмент контейнеризации, с помощью которого можно упаковывать разработанные на локальном компьютере сервисы и разворачивать их на любом другом компьютере.
- Работать с инструментами визуализации данных. Например, Tableau или ElasticSearch.

Давид Григорян:
«Из «жестких» навыков для дата-инженера наиболее важны сильное знание SQL, Python для предобработки данных. Нужно хорошо знать весь стек Hadoop (HDFS, Hive, Spark, прочие утилиты). Если говорить о «гибких» навыках — нужно все то же, что и любому ИТ-инженеру: легко коммуницировать с коллегами, уметь простыми словами объяснить результат своей работы бизнесу, тайм-менеджмент и умение корректно оценивать трудозатраты на проект. Также важно уметь быстро погружаться в новую предметную область, поскольку Data Science — это всегда приложение к какой-то практической сфере».
Откуда приходят в профессию
В профессию дата-инженера можно прийти из аналитики, при этом неважно, айтишная она или нет. Например, не-айтишных аналитиков в дата-инженеры может привести желание автоматизировать работу с таблицами и отчетами. В сфере ИТ в дата-инженеры приходят специалисты, которые уже неплохо знают Python и хотят развиваться в технической специальности.
Тренды профессии
Объем данных растет с каждым днем, а вместе с ним и потребность в дата-инженерах, которые упорядочат эти данные и сделают их доступными и полезными для бизнеса. По данным отчета DICE, в 2020 году профессия дата-инженера стала самой быстрорастущей в сфере ИТ: спрос на таких специалистов вырос на 50% по сравнению с 2019-м.
Исследование вакансий в сфере Data Science показывает, что в России спрос на дата-инженеров в 2021 году вырос на 127%.

Сегодня дата-инженеры нужны как гигантам вроде Google или Amazon, так и небольшим компаниям. Любой бизнес, у которого есть мобильное приложение или интернет-магазин, нуждается в качественной работе с данными, чтобы расти и развиваться. **Согласно статистике Zippia, активный найм дата-инженеров начинается с компаний, в которых работают от 100 до 500 сотрудников. Тем не менее, бизнесы с небольшими командами в статистике тоже присутствуют, хоть и занимают меньшую долю.

Более 40% дата-инженеров на рынке США нанимают в компании, где больше 10 тыс. сотрудников
Наиболее востребованы дата-инженеры в крупных корпорациях, на втором месте — ИТ-сфера, за ней следуют финансы и стартапы.

Более 20% дата-инженеров нанимают крупные корпорации из списка Fortune 500
Как стать дата-инженером
Чтобы начать учиться инженерии данных, нужно как минимум знать основы программирования на Python. Пройти курс для начинающих можно здесь. Также на ресурсе Codeacademy доступен бесплатный курс по SQL.
Давид Григорян:
«Курсы нужны, с ними гораздо проще вкатываться в отрасль. Но вместе с тем, они дают только необходимый фундамент. Дальше нужен боевой опыт».
Изучить алгоритмы данных можно на бесплатном курсе от Stepik. Подробные видеоуроки по работе с базами данных также можно найти на YouTube. Освоить инструменты Hadoop также бесплатно можно на курсе Stepik.
Чтобы поддерживать знания актуальными и глубже вникнуть в тему, послушайте Data Engineering Podcast, в котором состоявшиеся специалисты обсуждают инструменты и кейсы.
