Pull to refresh

«Инженеров данных заменит автоматика» и другие мифы о DE

Level of difficultyEasy
Reading time8 min
Views17K

Инженеры данных (англ. 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) — это последовательность шагов и операций с данными: сбор, очистка, преобразование, агрегация и загрузка.

В результате пайплайны справляются с большим объёмом данных за меньшее время, повышают качество данных и могут масштабироваться, адаптируясь под изменения в бизнесе.

Кроме того, дата-инженеры, как и аналитики, могут визуализировать данные и создавать отчёты. Например, когда компании нужно оценить бизнес-метрики и увидеть тренды или спрогнозировать спрос и оптимизировать производственные планы.

Иллюстрации сгенерированы Midjourney
Иллюстрации сгенерированы Midjourney

Миф 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 Кирилла Дикалина, а также авторов курса и редактора Варвару Скопину.

Tags:
Hubs:
Total votes 12: ↑8 and ↓4+10
Comments1