Кто такой Инженер данных (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 операционных систем.