Да, в этих ваших интернетах есть много материалов о том кто такой Data Engineer (DE), в том числе и на самом Хабре. Но мне самому захотелось об этом рассказать. Опыт, хоть и небольшой, в этой сфере у меня есть (Сейчас Data Engineer в Сбер Образовании).
ЭТА СТАТЬЯ НЕ ЯВЛЯЕТСЯ СУПЕР ТЕХНИЧЕСКОЙ, В КОТОРОЙ СТРОГО ВСЕ ПО НАУЧНОМУ. ТУТ Я ОБЪЯСНЯЮ ТЕМУ ПРОСТЫМ ЯЗЫКОМ (по другому не сумею)
Кто он?
Для того, чтобы объяснить кто такой дата-инженер я нарисовал картинку ниже
Что там нарисовано:
Есть разные источники (разные БД, сайты, файлики и др.), дата инженер собирает эти все данные и кладет в БД, дальше уже мастера своего дела строят из этих данных графики и ИИ.
Может показаться, что у дата инженера в этой цепочке самая легкая задача, возможно это и так, но давайте рассмотрим более конкретно, что именно делает дата инженер
ETL
ETL (Extract, Transform, Load) – это процесс переноса данных из разных источников в одно место, после чего эти данные преобразуются и сохраняются в удобном для анализа или использования виде. Стрелочка «Делает Data engineer» на рисунке выше и являются этим самым ETL
То есть нам (как дата инженеру) нужно взять данные из разных источников (базы данных, файлы, веб-сервисы/API), преобразовать их и сложить все в удобном виде, в правильном формате, «чистыми» в нашу базу данных из которой этими данными уже смогут пользоваться другие специалисты. Ну и, конечно, чтобы это все потом работало без нашего участия
Пример: взять данные по api, распарсить js, убрать не нужную нам инфу (например клиентов у которых какой-то параметр пустой), а дальше из получившейся таблице и еще нескольких других с помощью sql создать витрину (о них ниже), чтобы потом какой-нибудь дяденька в костюме смог посмотреть на график, который сделан с помощью этой витрины, и принять какое-то важное решение
Про витрины
Конечным продуктом дата инженера обычно являются витрины - это табличка в которой нужные, обработанные, преобразованные данные из разных источник. Витрины для DE это как сайт для фронтенд разработчика.
Кто их должен строить - писать sql скрипт? Есть 3 варианта
Дата инженер сам узнает что надо и сам пишет скрипт
Дата анатилик передает готовый sql дата инженеру
Дата аналитик говорит, что нужно сделать (возможно в формате псевдокода), а дата инженер это делает
В разных местах, возможны разные варианты, поэтому нужно быть готовым ко всему
Другие задачи
Настройка ETL-процессов является основной задачей для DE и большую часть времени обычно он занимается именно этим, но также могут быть и другие задачи:
Данные мы ведь кладем в БД, а значит там все должно быть хорошо, порядок, правильные схемы, отсутствие мусора, производительность и все такое, часто за этим следит именно DE
Описать какие данные данные хранятся в базе, чтобы другим людям было понятно что где лежит, куда идти. В этом процессе дата инженер тоже участвует
Не все в этом мире идеально и даже наши ETL потоки, поэтому это тоже нужно отслеживать и бежать их чинить в случаи ошибки
Отслеживать качество и чистоту данных. Если DE сказали взять данные от куда-то и положить в БД, а потом оказалось, что данные мусор, то вина DE в этом тоже есть
И, конечно, еще куча остальных задач - созваны, чайок с печененками …
Что должен знать Data Engineer
Из текста выше вы, возможно, уже смогли понять какие навыки нужны дата инженеру, но я все таки вынес это в отдельный блок
ОБЯЗАТЕЛЬНО:
Базы данных и SQL. Дата инженер работает с данными и поэтому он должен понимать, что такое БД, и уметь доставать от туда нужную информацию с помощью sql. И не просто уметь делать select, но и делать более сложные штуки - where, join, оконные функции, процедуры и другое
Python или другой язык программирования. Чаще всего основным языком DE является python, но в некоторых местах пользуются также и другими языками - Java или Scala. Но если вы только начинаете, то достаточно будет знать только python. Уровень, по крайне мере на начальных позициях, не требуется слишком крутой. Знать какие-то основы, api, библиотеки для работы с данными.
ВСТРЕЧАЕТСЯ РЕЖЕ ИЛИ У ПРОДВИНУТЫХ:
Более крутое владение sql для написания более сложных запросов и лучше знать язык программирования, чтобы писать чуть более сложные шутки
Знать не только какую-то общую инфу про БД, но и понимать чем одна база данных отличается от другой и где какая нужна
Биг дата - Hadoop, Spark и все такое
Брокеры сообщений, например Kafka
Bi-системы - вряд ли DE будет строить дашборды, но на начальном этапе все возможно
Сети, инфраструктура …
Понимание бизнеса - ведь крутой программист не просто закрывает таски, он решает задачи бизнеса
Необходимо еще знать кукую-то общую инфу для большинства программистов - Git, консоль
Ну а вообще просто открываете какой-нибудь сайт с вакансиями и смотрите требования
Плюсы и минусы
На вопрос какое направление выбрать, я обычно отвечаю, что попробуй, а потом выбери, что тебе больше нравится, но я ведь все таки тут типо полезную статью пишу, поэтому напишу плюсы и минусы специальности
ПЛЮСЫ:
Бабки. Не миллионы, конечно, но среди всех it специальностей, люди, которые работают с данными находится в первой половине самых высокооплачиваемых айтишников
Легко прийти, легко уйти. Главными умениями дата инженера является знание python и sql, эти знания нужно и во многих других областях, поэтому не очень сложно как прийти сюда из другой области, так и наоборот уйти в другое место если надоест
МИНУСЫ
Может быть скучно. Другие программисты делают сайты, приложения, ИИ и другие штуки, которые можно пощупать или сказать вау, а результат твоей работы - это табличка в базе данных. Для тех кому хочется видеть результат своей работы в более явном виде, профессия DE может показаться скучной
В названии вакансии одно, а по факту другое. Возможно это есть во всех в сферах, но для инженера данных это точно актуально. «Ты ведь с данными работаешь, а значит за все, что так или иначе свазано с данными будешь отвечать», а тут о много чем может быть речь и про обязанности дата саентиста и дата аналитика, и про создать отчет в икселе или построй сам для себя инфраструктуру
Не всегда есть удаленка. Работать удаленно для человека из it - это что-то обыденное, но у тех кто работает с данными не всегда есть такая возможность. БЕЗОПАСНОСТЬ
Кратко
Какое нужно образование? - У меня нет профильного образования, но лучше, наверное, чтобы было какое-нибудь связанное с программированием
Карьерный рост? - CDO можете стать. Это главный по данным в компании
В каких компаниях нужны инженеры данных? - Нужны везде
Полезные ссылки
Cтатья на хабре с полезными ссылками
Библиотека ссылок по инженерии информационных систем
Куча курсов (в основном бесплатно) по python и sql есть на Stepik
Если вдруг понравилась статья
Если вам понравилась статья, то можете подписать на мой телеграм канал https://t.me/datamisha там я о своей работе дата инженера пишу
Комментарии (5)
somagic
22.03.2024 07:02Отличная картинка в статье, долго не мог понять конкретно чем дата инженер занимается и чем отличается от смежных специальностей. На многих сайтах пишут много текста про отличие того же дата инженера от data scientist, но все слишком абстрактно рассказывают
ArkadiyShuvaev
22.03.2024 07:02но в некоторых местах пользуются также и другими языками - Java или Scala
А почему именно они а, не скажем, C#? Какой-то специфический софт написан на Java?
paguyc
Хорошо, если данные уже дают. Но вот, когда их еще предстоит спарсить с сайтов, что в общем то тоже задача дата инженера, то вам придется еще впитать в себя DevOps.
datamisha Автор
В теории, под обязанности дата инженера можно вписать практически все, что угодно)
paguyc
эту фразу можно работодателю передать.