Кто такой Data Engineer

Кто такой Data Engineer

Да, в этих ваших интернетах есть много материалов о том кто такой Data Engineer (DE), в том числе и на Хабре. Но мне самому захотелось об этом рассказать. Опыт, хоть и небольшой, в этой сфере у меня есть (Сейчас Data Engineer в Сбер Образовании).

ЭТА СТАТЬЯ НЕ ЯВЛЯЕТСЯ СУПЕР ТЕХНИЧЕСКОЙ, В КОТОРОЙ СТРОГО ВСЕ ПО НАУЧНОМУ. ТУТ Я ОБЪЯСНЯЮ ТЕМУ ПРОСТЫМ ЯЗЫКОМ (по другому не сумею)

Кто он?

Для того, чтобы объяснить кто такой дата-инженер я нарисовал картинку ниже

Кто такой Data Engineer

Что там нарисовано:

Есть разные источники (разные БД, сайты, файлики и др.), дата инженер собирает эти все данные и кладет в БД, дальше уже мастера своего дела строят из этих данных графики и ИИ.

Может показаться, что у дата инженера в этой цепочке самая легкая задача, возможно это и так, но давайте рассмотрим более конкретно, что именно делает дата инженер

ETL

Кто такой Data Engineer

ETL (Extract, Transform, Load) – это процесс переноса данных из разных источников в одно место, после чего эти данные преобразуются и сохраняются в удобном для анализа или использования виде. Стрелочка «Делает Data engineer» на рисунке выше и являются этим самым ETL

То есть нам (как дата инженеру) нужно взять данные из разных источников (базы данных, файлы, веб-сервисы/API), преобразовать их и сложить все в удобном виде, в правильном формате, «чистыми» в нашу базу данных из которой этими данными уже смогут пользоваться другие специалисты. Ну и, конечно, чтобы это все потом работало без нашего участия

Пример: взять данные по api, распарсить js, убрать не нужную нам инфу (например клиентов у которых какой-то параметр пустой), а дальше из получившейся таблице и еще нескольких других с помощью sql создать витрину (о них ниже), чтобы потом какой-нибудь дяденька в костюме смог посмотреть на график, который сделан с помощью этой витрины, и принять какое-то важное решение

Про витрины

Кто такой Data Engineer

Конечным продуктом дата инженера обычно являются витрины - это табличка в которой нужные, обработанные, преобразованные данные из разных источник. Витрины для DE это как сайт для фронтенд разработчика.

Кто их должен строить - писать sql скрипт? Есть 3 варианта

  • Дата инженер сам узнает что надо и сам пишет скрипт
  • Дата анатилик передает готовый sql дата инженеру
  • Дата аналитик говорит, что нужно сделать (возможно в формате псевдокода), а дата инженер это делает

В разных местах, возможны разные варианты, поэтому нужно быть готовым ко всему

Другие задачи

Кто такой Data Engineer

Настройка ETL-процессов является основной задачей для DE и большую часть времени обычно он занимается именно этим, но также могут быть и другие задачи:

  • Данные мы ведь кладем в БД, а значит там все должно быть хорошо, порядок, правильные схемы, отсутствие мусора, производительность и все такое, часто за этим следит именно DE
  • Описать какие данные данные хранятся в базе, чтобы другим людям было понятно что где лежит, куда идти. В этом процессе дата инженер тоже участвует
  • Не все в этом мире идеально и даже наши ETL потоки, поэтому это тоже нужно отслеживать и бежать их чинить в случаи ошибки
  • Отслеживать качество и чистоту данных. Если DE сказали взять данные от куда-то и положить в БД, а потом оказалось, что данные мусор, то вина DE в этом тоже есть
  • И, конечно, еще куча остальных задач - созваны, чайок с печененками …

Что должен знать Data Engineer

Кто такой Data Engineer

Из текста выше вы, возможно, уже смогли понять какие навыки нужны дата инженеру, но я все таки вынес это в отдельный блок

ОБЯЗАТЕЛЬНО:

  • Базы данных и SQL. Дата инженер работает с данными и поэтому он должен понимать, что такое БД, и уметь доставать от туда нужную информацию с помощью sql. И не просто уметь делать select, но и делать более сложные штуки - where, join, оконные функции, процедуры и другое
  • Python или другой язык программирования. Чаще всего основным языком DE является python, но в некоторых местах пользуются также и другими языками - Java или Scala. Но если вы только начинаете, то достаточно будет знать только python. Уровень, по крайне мере на начальных позициях, не требуется слишком крутой. Знать какие-то основы, api, библиотеки для работы с данными.

ВСТРЕЧАЕТСЯ РЕЖЕ ИЛИ У ПРОДВИНУТЫХ:

  • Более крутое владение sql для написания более сложных запросов и лучше знать язык программирования, чтобы писать чуть более сложные шутки
  • Знать не только какую-то общую инфу про БД, но и понимать чем одна база данных отличается от другой и где какая нужна
  • Биг дата - Hadoop, Spark и все такое
  • Брокеры сообщений, например Kafka
  • Bi-системы - вряд ли DE будет строить дашборды, но на начальном этапе все возможно
  • Сети, инфраструктура …
  • Понимание бизнеса - ведь крутой программист не просто закрывает таски, он решает задачи бизнеса

Необходимо еще знать кукую-то общую инфу для большинства программистов - Git, консоль

Ну а вообще просто открываете какой-нибудь сайт с вакансиями и смотрите требования

Плюсы и минусы

Кто такой Data Engineer

На вопрос какое направление выбрать, я обычно отвечаю, что попробуй, а потом выбери, что тебе больше нравится, но я ведь все таки тут типо полезную статью пишу, поэтому напишу плюсы и минусы специальности

ПЛЮСЫ:

  • Бабки. Не миллионы, конечно, но среди всех it специальностей, люди, которые работают с данными находится в первой половине самых высокооплачиваемых айтишников
  • Легко прийти, легко уйти. Главными умениями дата инженера является знание python и sql, эти знания нужно и во многих других областях, поэтому не очень сложно как прийти сюда из другой области, так и наоборот уйти в другое место если надоест

МИНУСЫ

  • Может быть скучно. Другие программисты делают сайты, приложения, ИИ и другие штуки, которые можно пощупать или сказать вау, а результат твоей работы - это табличка в базе данных. Для тех кому хочется видеть результат своей работы в более явном виде, профессия DE может показаться скучной
  • В названии вакансии одно, а по факту другое. Возможно это есть во всех в сферах, но для инженера данных это точно актуально. «Ты ведь с данными работаешь, а значит за все, что так или иначе свазано с данными будешь отвечать», а тут о много чем может быть речь и про обязанности дата саентиста и дата аналитика, и про создать отчет в икселе или построй сам для себя инфраструктуру
  • Не всегда есть удаленка. Работать удаленно для человека из it - это что-то обыденное, но у тех кто работает с данными не всегда есть такая возможность. БЕЗОПАСНОСТЬ

Кратко

Какое нужно образование? - У меня нет профильного образования, но лучше, наверное, чтобы было какое-нибудь связанное с программированием

Карьерный рост? - CDO можете стать. Это главный по данным в компании

В каких компаниях нужны инженеры данных? - Нужны везде

Полезные ссылки

  • Cтатья на хабре с полезными ссылками
  • Библиотека ссылок по инженерии информационных систем
  • Куча курсов (в основном бесплатно) по python и sql есть на Stepik

Если вам понравилась статья, то можете подписать на мой телеграм канал https://t.me/datamisha там я о своей работе дата инженера пишу

Начать дискуссию