Data engineer: кто это такой, чем занимается, как им стать
Разбираемся, что нужно уметь инженеру данных и кому подходит профессия.
Иллюстрация: Billion Photos / Shutterstock / Jim cooke / Unsplash / Annie для Skillbox Media
Данные ― это «нефть» для бизнеса и науки. И только инженеры данных знают, как эту нефть добывать, обрабатывать и хранить.
В статье мы расскажем, какие задачи решает data engineer и чему нужно научиться, чтобы стать востребованным специалистом в этой сфере.
Вы узнаете:
- Кто такой data engineer
- Чем data engineer отличается от data scientist
- Чем он занимается
- Что он должен уметь и знать
- Какие у этой профессии достоинства и недостатки
- Как стать data engineer и где этому научиться
Кто такой data engineer
Дата-инженер (data engineer) — это специалист, который разрабатывает и обслуживает инфраструктуру хранения, обработки и анализа больших объёмов данных, или big data.
Инженеры данных нужны в банках, ретейле и крупных онлайн-сервисах. Например, банки хранят информацию обо всех транзакциях своих клиентов. Им нужно проанализировать поведение своих клиентов, чтобы предложить им новые полезные продукты: кредитные и дебетовые карты, кешбэк, скидки партнёров и так далее. Но прежде чем анализировать данные о покупках и транзакциях, их нужно собрать в одном месте и структурировать.
Структурированные данные организованы в определённом формате, чаще всего в таблицах, XML-файлах или JSON-файлах. Такие данные легко прочитать и обработать с помощью компьютерных программ. Инженер данных и есть тот человек, который может взять картинки, тексты и видео в неструктурированном формате и трансформировать их в удобный формат, а затем передать другим отделам, например маркетинга или бизнес-аналитики.
Инженер данных не участвует в анализе данных, но создаёт условия для работы ML-инженеров и аналитиков, обеспечивает их необходимыми инструментами. Data engineer ― техническая специальность, которая требует не только уметь программировать, но и понимать принципы работы «железа», в том числе серверов и облачных систем, где хранятся данные.
Чем data engineer отличается от data scientist
Несмотря на некоторую схожесть в названиях специальностей и обязанностях дата-инженеров и дата-сайентистов, это две разные профессии, которые тем не менее отлично дополняют друг друга.
Data engineer создаёт инфраструктуру для работы с данными. Он устанавливает инструменты для сборки и передачи данных, строит архитектуру хранилищ для БД.
Data scientist пользуется этой инфраструктурой, чтобы анализировать данные. Он строит и обучает модели, чтобы они находили паттерны в данных и правильно их интерпретировали. К дата-сайентисту данные попадают уже в «очищенном» и упорядоченном виде.
Можно сказать, что без инженера данные останутся непригодны для работы, ведь некому будет их собрать, систематизировать и передать на изучение. Но и без дата-сайентистов от них не будет пользы, кто-то же должен их проанализировать.
В больших компаниях роли data engineer и data scientist обычно играют разные люди. Но маленькие компании часто ищут многопрофильных специалистов, которые знают, как проектировать инфраструктуру для управления данными, и умеют работать с алгоритмами машинного обучения.
Чем занимается инженер данных
Инженер данных создаёт условия для хранения и обработки больших данных, или big data. Это значит, что он:
- Управляет ETL-процессами, то есть достаёт (extract), трансформирует (transform) и загружает (load) данные в базу данных.
- Очищает данные от дубликатов, ошибок, нерелевантных полей.
- Организует пайплайн потоков данных (конвейер, по которому потоки данных двигаются в компании).
- Настраивает мониторинг так, чтобы в случае поломки система оповестила инженера о возникшей проблеме.
- Разрабатывает и поддерживает базы данных, чтобы нужные данные легко было найти и извлечь.
- Оптимизирует производительность баз данных, чтобы данные стабильно поступали в систему даже при высокой нагрузке.
- Разрабатывает и поддерживает приложения для работы с данными, такие как API и CLI.
- Cоставляет расписание, по которому система обработки данных в компании будет работать с информацией.
Конечно, стоит отметить, что конкретный набор обязанностей специалиста зависит от компании, в которой он работает. И, как уже было сказано выше, нередко от дата-инженера ожидают умений из смежных профессий, таких как data science.
Что нужно знать и уметь
Вот «джентльменский набор» хард-скиллов, которыми должен владеть инженер по работе с данными.
Языки программирования. Чтобы работать дата-инженером, нужно уметь программировать на Python или Java/Scala, реже на Go или C++. Навык пригодится для автоматизации обработки данных из разных источников, а также для разработки служебных утилит и сервисов. Из приведённых языков Python ― самый разноплановый и потому популярный, зато Scala более эффективен в промышленных масштабах за счёт специализации на работе с данными.
Читайте также:
Базы данных и SQL. Инженер по данным много работает с таблицами, поэтому он должен уметь писать SQL-запросы и работать с разными видами баз данных (например, реляционными или колоночными).
Hadoop, Spark и Kafka. Эти инструменты помогают работать с данными на кластерах (то есть группах взаимно подсоединённых виртуальных вычислительных или физических машин), потому что большие данные невозможно эффективно обработать на локальных компьютерах. Также важно знать Linux, владеть командной строкой, писать Bash-сценарии и уметь работать с облачными сервисами, например Amazon Web Services. Данные часто обрабатываются в облаке, поскольку немногие компании могут себе позволить выстроить собственную огромную инфраструктуру.
Хотите узнать всё о Kafka меньше чем за час? Слушайте выпуск подкаста «Люди и код», в котором мы обсудили его API, сложности настройки, сценарии использования и сравнили с конкурентами.
Docker. Инженеру данных также важно уметь пользоваться Docker. Это сервис для упаковки данных на локальном компьютере, чтобы их можно было передать коллегам или в кластер.
Читайте также:
Софт-скиллы. Несмотря на то, что инженер данных — глубоко техническая профессия, даже здесь требуются развитые софт-скиллы. Инженеру нужно уметь взаимодействовать с командой из своего и других отделов: data science, бизнес-аналитики и маркетинга. В работе с аналитиками данных инженер данных, по сути, выступает как исполнитель, а data scientist — как клиент. Поэтому инженер данных должен разобраться в потребности клиента, предложить решение и уметь убедительно презентовать его.
Плюсы и минусы профессии
Ну какие недостатки могут быть у такой перспективной и модной профессии? Оказывается, кое-какие трудности всё-таки есть.
Большая ответственность. Дата-инженеры отвечают за работу инфраструктуры, качество и сохранность данных. Им часто приходится выполнять монотонную и однотипную работу — при этом важно не терять сосредоточенности.
Высокий порог входа. Даже чтобы претендовать на джуниорскую позицию, нужно овладеть несколькими разноплановыми инструментами для работы с данными. А поскольку профессия новая, список требований может сильно разниться в разных компаниях.
Зато плюсов куда больше:
Высокие зарплаты и относительно низкая конкуренция. Хороших специалистов мало, поэтому конкуренция на рынке невысокая, а зарплаты высокие — как в России, так и за рубежом. Согласно hh.ru, начинающий дата-инженер может претендовать на зарплату от 75 тысяч рублей. Middle-инженер может зарабатывать от 100 до 390 тысяч рублей, а senior — от 240 до 830 тысяч рублей и более. В зарубежных компаниях могут платить намного больше.
Удалённая работа или релокация. Вы сможете работать удалённо в крупных городах России или за рубежом. К тому же зарубежные компании заинтересованы в технических специалистах и охотно помогают им с релокацией.
Перспективность и стабильность со знаком +. Количество данных и потребность в специалистах, которые умеют с ними работать, растёт из года в год. Согласно отчёту Dice, в 2021 году в России спрос на дата-инженеров увеличился на 127%.
Это очень интересно. Если вам нравится решать сложные задачи и осваивать новые технологии, эта профессия точно вам понравится. К тому же инженеру по данным есть куда расти, как вертикально, так и горизонтально. Или со временем вы можете вовсе сменить карьерный вектор. Например, освоить machine learning и работать с моделями машинного обучения или переквалифицироваться в DevOps-инженера и заниматься автоматизацией и упорядочиванием процесса разработки в целом.
Как стать дата-инженером и где учиться
Чтобы стать инженером данных, нужно изучить основы информационных технологий, математики и статистики. Также придётся освоить язык программирования, работу с базами данных и специальные инструменты: Hadoop, Spark, NoSQL и другие (см. выше).
Чтобы повысить квалификацию и увеличить шансы на получение работы, некоторые специалисты советуют получить сертификаты в области big data и data engineering. Самые популярные из них:
- Google Certified Professional Data Engineer
- IBM Data Science Professional Certificate
- AWS Certified Big Data
Программы высшего образования в области инженерии данных есть в крупных российских вузах, в том числе в МФТИ, МИФИ и НИУ ВШЭ.
В Skillbox можно обучиться профессии за два года. Сначала вы пройдёте модуль с основами data science, а потом выберете специализацию, одна из которых — data engineer. Среди главных преимуществ такого подхода — упор на практические задачи, свежая и регулярно обновляемая программа, а также постоянная коммуникация с преподавателями.
Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!