Кто такой Инженер данных (Data Engineer)

Основная деятельность Инженера данных заключается в подготовке данных для дальнейшего использования в аналитических и операционных целях. Обычно, в рамках своей роли, Data Engineer ответственен за построение потоков, агрегирующих данные из нескольких разных источников. В составе этих потоков информация интегрируется, консолидируется, а также очищается и структурируется для использования в аналитических системах. Цель данной роли – сделать данные более доступными и в целом оптимизировать их организацию в экосистеме больших данных.

Объемы данных, с которыми приходится работать инженеру данных могут отличаться от одной организации к другой, в частности, завися от размера компании. Чем больше компания, тем более сложна архитектура ее аналитических систем и, соответственно, тем с большим количеством данных придется иметь дело инженеру данных. Отдельные индустрии, такие как здравохранение, ритейл, финансы – могут, также, оперировать большими объемами данных, чем другие.

Дата инженеры работают в сотрудничестве с командами data science, улучшая прозрачность при использовании данных и позволяя бизнесу принимать более обоснованные решения.

Data Engineer  фокусируется на сборе и подготовке данные для испоьлзования data scientist’ами и аналитиками. Можно выделить три основных специализации для данной роли:

  • Общая. В данном случае, инженеры данных обычно работают в небольших командах, выполняя end-to-end сбор данных и их обработку. Они могут обладать более обширными знаниями, чем большинство дата инженеров, но, в то же время, меньшими знаниями об архитектуре систем. Data scientist, желающий стать инженером данных, наиболее успешно впишется в общую специализацию;
  • С ориентацией на потоки данных. Такие инженеры данных обычно работают в среднего размера аналитических команда и более сложных проектах. Такая специализация наиболее часто бывает востребована в средних и больших организациях.
  • С ориентацией на базы данных. Такой тип специализации обычно решает задачи внедрения, поддержки и распространения аналитических баз данных. Эта роль чаще всего существует в больших компаниях, где данные распределены по нескольким разным БД. Инженеры работают с потоками данных, настраивают БД для более эффективного анализа и создают схемы баз данных, используя инструменты ETL.

Обязанности инженера данных

Инженеры данных часто являются частью аналитической команды наряду с data scientist’ами. Они подготавливают данные в формате, удобном для работы data scientist’ов, которые, в свою очередь, используют запросы и алгоритмы в приложениях предиктивной аналитики, машинного обучения и интеллектуального анализа данных. Дата инженеры, также поставляют агрегированные данные коллегам из бизнеса, аналитикам и другим конечным пользователям для анализа и последующего улучшения бизнес процессов.

Инженеры данных работают как со структурированными, так и с неструктурированными данными. Под структурированными данными понимается информация, которая может быть каким-либо образом организована, например, в виде базы данных. Неструктурированные данные – текст, изображения, аудио, видео – не соответствуют общепринятым моделям данных. Дата инженер должен понимать различные подходы к архитектуре и особенности, присущие приложениям, работающим с обоими типами данных.

Основные навыки

Инженер данных должен иметь навыки программирования на таких языках как С#, Java, Python, Ruby, R, Scala. Из наиболее важных можно выделить  Python, R, SQL.

Инженеру необходимо также хорошее понимание работы ETL инструментов и REST API для создания и управления заданиями интеграции данных. Эти навыки будут также полезны для обеспечения аналитиков и бизнес пользователей доступов к подготовленным наборам данных.

Data engineer должен понимать особенности работы хранилищ данных и озер данных. Также, полезным будет опыт работы с NoSQL базами данных и Apche Spark, которые становятся наиболее часто используемыми инструментами при создании потоков данных. Также, необходимо понимание особенностей работы с реляционными базами данных. Например, MySQL и PostgreSQL.

Другим фокусом для данной роли является понимание лямбда-архитектуры.

Понимание работы и настройки BI-инструментов, также являются важной частью навыков инженера данных.

Наконец, важной частью будет являться понимание основанных на Unix операционных систем.