Баннер мобильный (1) Пройти тест

Кто такой Data Engineer и как им стать

Как и с чем работает незаменимый специалист из сферы Data Science

Гид по профессии

29 февраля 2024

Поделиться

Скопировано
Кто такой Data Engineer и как им стать

Содержание

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

    Что делает дата-инженер?

    Дата-инженер участвует в начальной и финальной стадиях анализа данных, обеспечивает их работу на инфраструктуре компании. Он занимается 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.

    еще мем про дата-инженера
    – Какова моя цель?
    – Писать SQL-запросы
    – Боже мой
    Источник

    Откуда приходят в дата-инженеры

    • Из аналитики вне 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. На нем есть главное – практика, благодаря которой вы сможете не просто в теории разобраться с программами и продуктами, которыми используют в профессии, но отработать технологии на реальных задачах и применить их в проекте.

    Скопировано
    0 комментариев
    Комментарии