Функции Data Scientist и Data Engineer во многом схожи, поэтому иногда эти специальности считают взаимозаменяемыми.

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

Расскажем, в чем отличие дата-инженера от дата-сайентиста, какие задачи выполняет каждый специалист и какими инструментами пользуется. В первую очередь статья будет полезна тем, кто планирует заниматься большими данными и хочет определиться с выбором: Data Engineer или Data Scientist.

Что должен знать дата-инженер и чем он занимается

Зона ответственности дата-инженера — построить надежную и эффективную архитектуру для работы с данными. Он настраивает и поддерживает системы для обработки данных, создает пайплайны для загрузки данных из различных источников, очищает и фильтрует некорректную информацию.

Дата-инженеру нужно знать, как различные части архитектуры взаимодействуют между собой, он должен уметь их интегрировать и строить полноценный процесс от сбора сырых данных до доведения результатов анализа до заказчика. При этом дата-инженер должен понимать возможности используемых технологий и их ограничения. Объясним на примере.

Производственная компания собирает разные типы данных из нескольких источников: логи с датчиков IoT, файлы, видео, таблицы и т. д. Процесс сбора, хранения и анализа всего объема этих данных необходимо организовать так, чтобы все заинтересованные подразделения компании могли оперативно получать необходимую им информацию. Налаживание и поддержка этого процесса и есть задача дата-инженера.

Если компания хочет собирать и хранить больше данных, чтобы принимать решения на их основе, то работа дата-инженера — понять, подходит ли существующая архитектура для этих задач или нужно что-то менять: добавлять мощности, интегрировать новые инструменты или вообще полностью перестраивать архитектуру.

Другой аспект профессии дата-инженера — подготовка и очистка данных. Дата-инженеры работают с сырыми (необработанными) данными, которые могут быть неполными, содержать ошибки или вообще не подходить для решения задачи. Они готовят данные для их дальнейшей обработки: автоматизируют сбор, очистку и преобразование в пригодный для анализа вид. 

Хотя в обязанности дата-инженера и входит работа с данными, он смотрит на них с точки зрения структуры, логики хранения и эффективности обработки. Он отвечает за то, чтобы данные были пригодны для их дальнейшей обработки. Также дата-инженер обеспечивает доступность данных: готовая архитектура должна позволять быстро обращаться к данным и получать ответ на запрос. При этом он не анализирует бизнес-информацию в этих данных, не пытается искать закономерности и инсайты.

Чем занимается Data Engineer:

  • проектирует, разрабатывает и поддерживает архитектуру для работы с большими данными;
  • настраивает сбор данных из разрозненных источников в единое хранилище;
  • проверяет данные на корректность, отбрасывает неполные или ошибочные данные;
  • приводит сырые данные к виду, пригодному для дальнейшей обработки и анализа;
  • создает пайплайны для загрузки и обработки данных;
  • ищет новые возможности для улучшения сбора и обработки данных.

Что должен знать и какими инструментами пользоваться:

  • Алгоритмы и структуры данных. Эти знания нужны для того, чтобы понимать, как хранятся данные, как наиболее оптимально их извлекать, обрабатывать и хранить.
  • SQL. Практически любая реляционная СУБД работает с SQL, поэтому дата-инженеру нужно знать этот язык, чтобы извлекать и обрабатывать данные.
  • Python, Java/Scala. Одним из самых подходящих языков для обработки данных считается Python, поэтому дата-инженеру не обойтись без его знания. Дополнительно пригодятся Java или Scala, потому что большинство инструментов для работы с данными написаны на этих языках.
  • Инструменты для работы с большими данными. Есть несколько популярных фреймворков и инструментов для работы с большими данными: Spark, Hadoop, Kafka и другие. В компаниях могут пользоваться разные инструменты, поэтому дата-инженер может не знать глубоко все инструменты, но он должен уметь работать хотя бы с одним и понимать, для чего нужны остальные.
  • Пайплайны для обработки данных. Большую часть работы по обработке данных дата-инженер делает не вручную, а с помощью пайплайнов. Это автоматизированные конвейеры, которые выполняют всю рутинную работу за дата-инженера: загружают данные, проверяют их и очищают, перекладывают в другую структуру.
  • Распределенные системы. Компании генерируют огромное количество данных, поэтому обрабатывать все на одном сервере неэффективно. Сейчас практически все системы работают в распределенном режиме, то есть обрабатывают большое количество данных параллельно на нескольких серверах. Дата-инженер должен уметь создавать и поддерживать такие распределенные системы.
  • Облачные платформы. Сейчас многие компании переводят свою инфраструктуру в облака, поэтому дата-инженер должен уметь с ними работать. Есть несколько облачных платформ, и каждая конкретная компания работает с конкретным провайдером. Дата-инженер должен уметь работать хотя бы с одной облачной платформой и знать, чем облачная архитектура отличается от On-premise. Кроме того, он должен понимать, как выбрать провайдера и подобрать архитектуру, оптимальную для задач бизнеса.

Кто такой дата-сайентист и чем он занимается

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

Представьте, что e-commerce-компании необходимо оптимизировать использование грузового транспорта. Для этого нужно предсказать количество заказов, которые поступят в будущем месяце, а также габариты коробок под эти заказы. Анализом данных и прогнозами займется дата-сайентист.

Он работает с уже обработанными и структурированными данными, которые для него подготовил дата-инженер. Дата-сайентист может даже не знать, откуда пришли эти данные, в каком виде они были изначально и что нужно было сделать, чтобы их обработать и привести к такому виду.

Дата-сайентист работает в системах, которые установил и настроил дата-инженер: базы и хранилища данных, инструменты для обработки данных и обучения ML-моделей. Как и дата-инженер, он делает все это не вручную. Ему на помощь приходит машинное обучение и искусственный интеллект: он создает и обучает модели, которые помогают ему в работе.

Основные задачи дата-сайентиста: 

  • анализирует и исследует данные, чтобы решать задачи бизнеса;
  • ищет скрытые закономерности, которые не видны на первый взгляд (инсайты);
  • создает и обучает модели машинного обучения;
  • подает информацию в понятном для бизнеса виде.

Что должен знать и какими инструментами пользоваться:

  • Используемые языки и ML-песочницы. Как и для дата-инженера, Python для дата-сайентиста является одним из основных языков. Также часто используется R, поэтому его знание тоже может пригодиться. Запросы к источникам данных пишутся на SQL — этот язык тоже надо знать. Среди популярных инструментов Jupyter Notebook, Airflow, Zeppelin. 
  • Математика и анализ данных. Анализ данных не обходится без математики и описательной статистики.
  • Машинное обучение. Дата-сайентист должен уметь создавать модели для машинного обучения и нейросетей.
  • Визуализация данных. Сами по себе результаты анализа важны, но, чтобы руководители компании смогли их понять, дата-сайентист должен подготовить их в удобном формате, чаще всего это графики или дашборды.
  • Облака. Специалисты по Data Science и Data Engineering должны уметь работать с облачными платформами. Ведь вся архитектура компании зачастую может быть построена в облаке. Кроме того, облака облегчают работу дата-сайентиста. Он может использовать неограниченные мощности для постоянных экспериментов и тестирования гипотез. Также на облачных платформах есть различные инструменты для быстрого вывода готовых моделей в продакшен. 

Большие данные в облаках

Крупные компании собирают огромное количество данных, которое измеряется в петабайтах. Зачастую локальные системы попросту не могут справиться с таким объемом данных. Во-первых, их нужно где-то хранить, а компании не всегда могут выделять так много места. Но проблема заключается не столько в хранении данных, сколько в обслуживании инфраструктуры для их хранения. Компаниям необходимо где-то размещать свои ЦОДы, следить за их температурой, поддерживать стабильность работы. А устаревшее оборудование нужно обновлять. Все это дорого и трудозатратно. Во-вторых, нужно заниматься аналитикой больших данных. При этом в разные периоды времени для этого требуются разные мощности. Облака позволяют компаниям масштабировать вычислительные мощности, когда возникает такая потребность, и платить за фактическое потребление. 

Аналитики из компании Gartner предположили, что в 2022 году облачные технологии станут обязательной частью 90% новых продуктов и сервисов в области больших данных. Такой подход называется Cloud First: когда компания в первую очередь стремится создавать свою инфраструктуру в облаке. Это дает возможность быстро запускать новые проекты, проверять гипотезы и выводить на рынок новые продукты.

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