Инженеры данных (англ. 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. Задачи инженера данных технические и однообразные
По первым четырём мифам может казаться, что задачи дата-инженера скучные и автоматические, но на практике они постоянно решают нестандартные задачи. Например, ищут новые способы оптимизировать пайплайны, чтобы настроить обработку данных в реальном времени, провести интеграцию с разными источниками или создать сложные алгоритмы обработки.
? Пайплайн (англ. pipeline) — это последовательность шагов и операций с данными: сбор, очистка, преобразование, агрегация и загрузка.
В результате пайплайны справляются с большим объёмом данных за меньшее время, повышают качество данных и могут масштабироваться, адаптируясь под изменения в бизнесе.
Кроме того, дата-инженеры, как и аналитики, могут визуализировать данные и создавать отчёты. Например, когда компании нужно оценить бизнес-метрики и увидеть тренды или спрогнозировать спрос и оптимизировать производственные планы.
Миф 6. Анализ данных и машинное обучение важнее data engineering
Ни одна крупная компания не может работать без данных и определять стратегии развития. А машинное обучение помогает в автоматизации, повышении эффективности и оптимизации операций.
В то же время инженер данных влияет на результат, действуя «за кулисами». Его работа не менее важна, чем анализ данных или МО, и вот почему.
Во-первых, неправильно подготовленные или неполные данные приводят к ошибкам в анализе. В маркетинге это может привести к неверной оценке эффективности рекламной кампании или к ошибке с целевой аудиторией, а в финансах — к неточному прогнозу рыночных трендов и рисков.
В машинном обучении некачественные данные приведут к тому, что модели не справятся с прогнозами. Например, если данные о предпочтениях пользователей содержат ошибки и пропуски, модель может неправильно или несвоевременно рекомендовать товары и контент.
Во-вторых, если архитектура и инфраструктура больших данных не продуманы, нельзя передавать их на анализ или машинное обучение. Нагрузка на серверы и задержка в обработке — только часть проблем. Инфраструктура может «упасть», а некорректные операции приведут к сбоям, потере данных или непредсказуемому поведению системы.
Без дата-инженера собрать и обработать данные тоже возможно. Но только этот специалист поможет компании справиться с большим потоком данных и построить инфраструктуру так, чтобы не было проблем на следующих этапах.
Миф 7. Инженеры данных нужны только в крупных компаниях
На первый взгляд, небольшому бизнесу основательный подход к хранению и обработке не нужен. Если данных не так много, зачем тратить ресурсы на инфраструктуру и сотрудников?
На деле data engineering важен любой компании, которая использует данные для работы: от небольшой консалтинговой фирмы до крупного интернет-магазина. Объёмы данных могут быть разными, а бизнесу в любом случае важно обрабатывать их качественно и быстро, чтобы принимать решения.
Допустим, интернет-магазин носков становится популярным благодаря вирусному контенту в социальных сетях. Число посещений и заказов резко растёт. Но оказывается, что система управления данными неэффективна. Как следствие, заказы задерживают, а клиенты недовольны. В этом случае инженер может продумать архитектуру, подсказать, как оптимизировать процессы, и выделить слабые места в инфраструктуре.
Но там, где небольшому бизнесу достаточно одного специалиста, крупные компании распределяют задачи между несколькими специалистами или даже командами. Одна ответственна за сбор данных и настройку системы, другая — за обработку и очистку, третья — за анализ и создание отчётов. Чем больше данных у компании, тем больше ресурсов нужно для сбора, хранения, обработки и анализа данных.
Миф 8. Data engineering можно полностью автоматизировать
Хранение и обработку данных можно автоматизировать: достаточно один раз спроектировать архитектуру, написать скрипты и настроить ETL-процессы.
Почему это не так — покажем на примерах:
-
У компании-перевозчика контейнеров есть много внутренних источников данных из разных областей. Когда компания решит агрегировать все источники в единое хранилище, появятся сложности. Например, передача данных из первого источника уже автоматизирована, а во втором источнике данные хранятся в другом формате. Обработку данных нужно менять, чтобы они правильно отображались в хранилище. А при переходе к следующему источнику появляется уведомление об изменении структуры данных в первом — и автоматизированный пайплайн перестаёт работать.
-
Для руководителя построили отчётность, которая обновляется автоматически при поступлении новых данных. Руководитель сменился — и новому нужны уже другие графики. В некоторых системах это подразумевает обновление логики, по которой строится отчётность. А значит, инженеру данных придётся менять процессы вручную.
Как технические, так и «человеческие» проблемы требуют изменений в уже работающем коде, чтобы обеспечить его непрерывную работу. Получается, что автоматизация не может полностью заменить инженера данных. Специалист постоянно поддерживает работу процессов — от обработки до защиты данных.
Где актуальны навыки инженера данных
Требования рынка меняются быстро, а инструменты и технологии подстраиваются. В работе дата-инженера тоже появляются задачи, которые вскоре могут пополнить число мифов. Зафиксируем актуальные направления:
-
Облачные технологии
Компании арендуют удалённые сервера вместо физических, а также вычислительные ресурсы в облаке, что сокращает затраты. Кроме того, масштабировать облачные системы проще: достаточно докупить необходимые элементы, а поддерживать их будут специалисты облачного сервиса. -
Расширение экосистемы инструментов для работы с данными
Новые инструменты приходят на замену старым или присоединяются к уже существующим системам. Среди новых можно выделить Apache Kafka, Apache Spark, Apache Flink, Apache NiFi, которые позволяют обрабатывать данные в режиме реального времени. Так, в Kafka и Spark можно собирать и анализировать данные о движении автомобилей. Эту информацию можно использовать для динамических карт с дорожными пробками. -
Графовые базы данных
Такие БД позволяют хранить и обрабатывать данные в виде графов и графовых структур. Вместо таблиц и строк данные представляют в виде узлов (вершин) и связей (рёбер) между ними. Благодаря этому можно анализировать связи и отношения между объектами и оперировать сложными структурами данных.
В социальных сетях графовые БД можно использовать, чтобы хранить и исследовать связи между пользователями или взаимодействиями между ними. -
Подготовка данных для обучения искусственного интеллекта
Для эффективного и точного искусственного интеллекта нужен существенный объём качественных данных. Их обработка и подготовка — ключевые задачи в обучении модели. Чем быстрее данные поставляются, тем точнее и качественнее обучается модель, особенно если это происходит в режиме реального времени.
Что должен уметь инженер данных
Специалисту по data engineering нужны знания о проектировании систем обработки, основах программирования, базах данных, сетевых протоколах и не только.
Основные технические навыки, или хард-скиллы:
-
Знания архитектуры данных. Умение проектировать и реализовывать сложные системы обработки данных.
-
Программирование. Инженеру данных нужен набор сразу из нескольких языков. SQL — для работы с БД и запросов на выборку данных. Python, Java или Scala — чтобы автоматизировать процессы, обрабатывать данные с помощью разных инструментов и создавать свои.
-
Работа с базами данных. На практике инженер данных сталкивается с разными типами БД: реляционные, NoSQL (MongoDB, Cassandra) и NewSQL (VoltDB, MemSQL, ClickHouse).
-
Знание оркестраторов, в которых настраиваются ETL-процессы: Apache Airflow, Apache NiFi или Talend.
-
Знание технологий для Big Data. Обработкой больших объёмов данных занимаются Apache Hadoop, Kafka, Greenplum. Они могут параллельно обрабатывать данные, например, распределяя их между множеством компьютеров в кластере, как делает Hadoop. И отличаются высокой отказоустойчивостью, чтобы минимизировать простои и потерю данных.
-
Понимание DevOps-подхода. Он помогает установить связь между разработчиками, тестировщиками и инженерами, запускающими код на реальные серверы, и оптимизировать процесс разработки. Чтобы включиться в этот процесс, инженеру данных пригодится знание таких программ, как Ansible, Terraform или Kubernetes.
-
Linux-системы и командная строка. Многие инструменты — те же Hadoop, Spark и Kafka — часто развёртываются и работают в среде Linux. Поэтому для работы с ними понадобится умение обращаться с терминалом, где пользователь может давать команды операционной системе.
-
Система контроля версий Git. С её помощью удобно работать в команде, контролировать версии кода и сохранять весь процесс разработки.
-
Облачные технологии: например, облачные сервисы Amazon Web Services (AWS), Google Cloud Platform (GCP) и Yandex Cloud.
Кроме этого, инженеру данных нужно интерпретировать требования заказчика и преобразовывать их в технические решения. Чтобы выбрать инструменты для обработки, нужно анализировать требования заказчика и возможности инструментов. А после — проводить мониторинг и анализ производительности системы, оперативно вносить изменения в работу процессов, обеспечивая оптимальную скорость обработки. И несмотря на то, что непосредственным анализом дата-инженер не занимается, он должен понимать структуру данных и её особенности, чтобы преобразовывать данные в желаемый формат и создавать работоспособные процессы.
За подготовку и идею статьи благодарим ревьюера на курсе «Инженер данных» от Практикума и инженера данных в SberData Кирилла Дикалина, а также авторов курса и редактора Варвару Скопину.
ссылка на оригинал статьи https://habr.com/ru/articles/740058/
Добавить комментарий