Инженеры данных (англ. data engineer) готовят данные для анализа, машинного обучения и других целей. В деталях это означает множество операций с данными: сбор, хранение, обработка, интеграция, трансформация и представление в нужной для работы приложений и систем форме.
Из краткого определения сложно понять нюансы профессии и тем более захотеть стать инженером данных. Поэтому мы с коллегами собрали мифы о data engineering и выделили наиболее популярные.
Если вы неплохо знакомы с работой дата-инженера, мифы про бесконечный кодинг или однообразие задач могут показаться глупыми и смешными. Но не делайте поспешных выводов: при подготовке статьи мы тоже узнали что-то новое.
Мифы о работе инженера данных
Одним инженерам данных известно, чем занимаются инженеры данных. Поэтому вокруг профессии много мифов и стереотипов, даже среди работодателей. Разберём самые распространённые вместе с инженером данных из SberData (департамент управления данными). И оговоримся, что это не рейтинг: мифы идут не в порядке важности.
Миф 1. Дата-инженерам не нужно кодить
Миф появился, потому что инженер данных часто пользуется коробочными решениями. Это готовое no-code (от англ. «без кода») программное обеспечение, для работы с которым нужны минимальные знания языков программирования.
No-code-инструменты позволяют управлять данными или упрощают создание их базовых структур. С no-code-инструментами можно быстро создавать и настраивать БД, таблицы, схемы и другие элементы.
Но программирование — существенная часть работы инженера данных. Оптимизировать производительность базы клиентов или обработать большой объём данных для маркетплейса невозможно без языков программирования и аналитики.
Миф 2. Наоборот, data engineering — это очень много кода
Противоположное первому мифу мнение: большая часть задач в data engineering связана с написанием кода. У некоторых дата-инженеров программирование и правда занимает 80% времени. Но на практике всё зависит от задачи. Например, если основная работа специалиста — проектировать архитектуру системы, то он чаще ревьюит код, чем пишет сам.
Миф 3. Data engineering — это просто ETL
Суть ETL-процесса (Extract, Transform, Load) — извлечь данные из различных источников, преобразовать в нужный формат и загрузить в хранилище. ETL-процессы нужны для обработки больших объёмов данных.
И хотя настраивать этот процесс — одна из основных задач инженера данных, она не единственная. Помимо этого нужно:
проектировать, создавать и поддерживать инфраструктуру для обработки данных, выбирать подходящие инструменты и программы;
оптимизировать производительность и масштабировать ETL-процесс, чтобы он обрабатывал растущие объёмы данных и соответствовал бизнес-потребностям;
учитывать требования к безопасности данных, обеспечивать их конфиденциальность и целостность.
Миф 4. Инженеру данных нужен только SQL
SQL (Structured Query Language) — основной язык запросов для многих реляционных баз данных (БД). Реляционные БД организуют и хранят данные в таблицах, которые можно связывать.
Инженеры данных часто работают с реляционными БД. И SQL нужно знать, чтобы извлекать, фильтровать, сортировать или группировать данные, а также писать сложные запросы и создавать таблицы и БД. У SQL простой и понятный синтаксис, поэтому освоить можно быстро.
Но SQL не покрывает все потребности дата-инженера. Например, парсинг требует манипуляций с текстом: удаление лишних символов, разделение текста на отдельные элементы. SQL же предназначен для работы с базами данных. В SQL попросту нет встроенных функций для таких операций.
Аналогичная ситуация с инструментами. Когда данных много, SQL-операции замедляются, поэтому есть более подходящие программы:
Для Apache Hadoop и Apache Spark нужно знать Python, Java или Scala.
Для Apache Airflow — популярного инструмента управления данными — тоже пригодится Python.
Для Grafana — инструмента мониторинга и логирования (записи информации о событиях, происходящих в системе, в журналы или логи) — нужен InfluxQL или язык разметки данных.
Миф 5. Задачи инженера данных технические и однообразные
По первым четырём мифам может казаться, что задачи дата-инженера скучные и автоматические, но на практике они постоянно решают нестандартные задачи. Например, ищут новые способы оптимизировать пайплайны, чтобы настроить обработку данных в реальном времени, провести интеграцию с разными источниками или создать сложные алгоритмы обработки.
