Профессии Data Scientist и Data Engineer часто путают. У каждой компании своя специфика работы с данными, разные цели их анализа и разное представление, кто из специалистов какой частью работы должен заниматься, поэтому и требования каждый предъявляет свои.
Разбираемся, в чём разница между этими специалистами, какие задачи бизнеса они решают, какими навыками обладают и сколько зарабатывают.
Материал получился большим, поэтому разделили его на две публикации. В первой части рассказываем об основных отличиях Data Scientist и Data Engineer и с какими инструментами они работают.
Как различаются роли дата-инженеров и дата-сайентистов
Инженер данных — это специалист, который, с одной стороны, разрабатывает, тестирует и поддерживает инфраструктуру работы с данными: базы данных, хранилища и системы массовой обработки. С другой стороны, дата-инженер очищает и «причёсывает» данные для использования аналитиками и дата-сайентистами, то есть создаёт конвейеры обработки данных.
Дата-сайентист создаёт и обучает предиктивные (и не только) модели с помощью алгоритмов машинного обучения и нейросетей, помогая бизнесу находить скрытые закономерности, прогнозировать развитие событий и оптимизировать ключевые бизнес-процессы.
Главное различие между Data Scientist и Data Engineer состоит в том, что обычно у них разные цели. Оба работают для того, чтобы данные были доступными и качественными. Если дата-сайентист находит ответы на свои вопросы и проверяет гипотезы в экосистеме данных (например, на базе Hadoop), то дата-инженер создаёт пайплайн обслуживания алгоритма машинного обучения, написанного дата-сайентистом, в кластере Spark внутри той же экосистемы.
Инженер данных приносит ценность бизнесу, работая в команде. Он выступает важным звеном между различными участниками: от разработчиков до бизнес-потребителей отчетности. Также помогает повысить продуктивность аналитиков — от маркетинговых и продуктовых до BI.
Дата-сайентист принимает активное участие в стратегии компании и извлечении инсайтов, принятии решений, внедрении алгоритмов автоматизации, моделирования и генерации ценности из данных.
Работа с данными подчиняется принципу GIGO (garbage in — garbage out): если аналитики и дата-сайентисты имеют дело с неподготовленными и потенциально некорректными данными, то результаты даже с помощью самых изощрённых алгоритмов анализа будут неверны.
Инженеры данных решают эту проблему, выстраивая пайплайны по обработке, очистке и трансформации данных и позволяя дата-сайентисту работать уже с качественными данными.
На рынке много инструментов для работы с данными на каждом этапе: от их появления до вывода на дашборд для совета директоров. И важно, чтобы решение об их использовании принималось дата-инженером, — не потому, что это модно, а потому что он действительно поможет в работе остальным участникам процесса.
Условно: если компании нужно подружить BI и ETL — загрузку данных и обновления отчётов, вот типичный legacy-фундамент, с которым придётся иметь дело Data Engineer (хорошо, если в команде кроме него будет ещё и архитектор).
Обязанности Data Engineer
- Разработка, построение и обслуживание инфраструктуры работы с данными.
- Обработка ошибок и создание надёжных конвейеров обработки данных.
- Приведение неструктурированных данных из различных динамических источников к виду, необходимому для работы аналитиков.
- Предоставление рекомендаций по повышению консистентности и качества данных.
- Обеспечение и поддержка архитектуры данных, используемой дата- сайентистами и аналитиками данных.
- Обработка и хранение данных последовательно и эффективно в распределённом кластере на десятки или сотни серверов.
- Оценка технических компромиссов инструментов для создания простых, но надёжных архитектур, которые смогут пережить сбои.
- Контроль и поддержка потоков данных и связанных систем (настройка мониторинга и алертов).
Существует ещё одна специализация внутри траектории Data Engineer — ML Engineer. Если коротко, то такие инженеры специализируются на доведении моделей машинного обучения до промышленного внедрения и использования. Зачастую модель, которая поступила от дата-сайентиста, является частью исследования и может не заработать в боевых условиях.
- Научитесь автоматизировать работу с данными, настраивать мониторинги, создавать конвейеры обработки и схемы хранения данных
- Получите знания, равноценные опыту 2‒3 лет самостоятельного изучения инжиниринга данных
Обязанности Data Scientist
- Извлечение признаков из данных для применения алгоритмов машинного обучения.
- Использование различных инструментов машинного обучения для прогнозирования и классификации паттернов в данных.
- Повышение производительности и точности алгоритмов машинного обучения за счет тонкой настройки и оптимизации алгоритмов.
- Формирование «сильных» гипотез в соответствии со стратегией компании, которые необходимо проверить.
И Data Engineer, и Data Scientist объединяет ощутимый вклад в развитие культуры работы с данными, с помощью которой компания может получать дополнительную прибыль или сокращать издержки.
С какими языками и инструментами работают инженеры данных и дата-сайентисты
Ожидания от специалистов по обработке данных изменились. Раньше дата-инженеры собирали большие SQL-запросы, вручную писали MapReduce и обрабатывали данные с помощью таких инструментов, как Informatica ETL, Pentaho ETL, Talend.
В 2020 году специалисту не обойтись без знания Python и современных инструментов проведения вычислений (например, Airflow), понимания принципов работы с облачными платформами — использования их для экономии на «железе», при соблюдении принципов безопасности.
SAP, Oracle, MySQL, Redis — это традиционные для инженера данных инструменты в больших компаниях. Они хороши, но стоимость лицензий настолько высока, что учиться работать с ними имеет смысл только в промышленных проектах. При этом, есть альтернатива в виде Postgres — он бесплатный и подходит не только для обучения.
Исторически часто встречается запрос на Java и Scala, хотя по мере развития технологий и подходов эти языки отходят на второй план.
Тем не менее, хардкорная BigData: Hadoop, Spark и остальной зоопарк — это уже не обязательное условие для инженера данных, а разновидность инструментов для решения задач, которые не решить традиционным ETL.
В тренде — сервисы для использования инструментов без знания языка, на котором они написаны (например, Hadoop без знания Java), а также предоставление готовых сервисов для обработки потоковых данных — распознавание голоса или образов на видео.
Популярны промышленные решения от SAS и SPSS, при этом Tableau, Rapidminer, Stata и Julia также широко используются дата-сайентистами для локальных задач.
Возможность самим строить пайплайны появилась у аналитиков и дата-сайентистов всего пару лет назад. Например, уже можно относительно несложными скриптами направлять данные в хранилище на основе PostgreSQL.
Обычно использование конвейеров и интегрированных структур данных остаётся в ведении дата-инженеров. Но сегодня как никогда силён тренд на Т-образных специалистов — с широкими компетенциями в смежных областях, ведь инструменты постоянно упрощаются.
- Научитесь строить и обучать предиктивные модели с помощью алгоритмов машинного обучения и нейросетей
- Будете находить скрытые закономерности, прогнозировать развитие событий и оптимизировать ключевые бизнес-процессы
Зачем Data Engineer и Data Scientist работать вместе
Работая в тесном сотрудничестве с дата-инженерами, дата-сайентисты могут сосредоточиться на исследовательской части и создавать готовые к работе алгоритмы машинного обучения. А инженеры — сфокусироваться на масштабируемости, повторном использовании данных, а также гарантировать, что пайплайны ввода и вывода данных в каждом отдельно взятом проекте соответствуют глобальной архитектуре.
Такое разделение обязанностей обеспечивает согласованность действий между группами специалистов, работающими над разными проектами машинного обучения.
Сотрудничество помогает эффективно создавать новые продукты. Скорость и качество достигаются, благодаря балансу между созданием сервиса для всех (глобальное хранилище или интеграция дашбордов) и реализацией каждой конкретной потребности или проекта (узкоспециализированный пайплайн, подключение внешних источников).
Тесная работа с дата-сайентистами и аналитиками помогает инженерам развивать аналитические и исследовательские навыки для написания более качественного кода. Улучшается обмен знаниями между пользователями хранилищ и озёр данных, что делает проекты более гибкими и обеспечивает более устойчивые долгосрочные результаты.
В компаниях, которые ставят своей целью развитие культуры работы с данными и выстраивание бизнес-процессов на их основе, Data Scientist и Data Engineer дополняют друг друга и создают полноценную систему анализа данных.
В следующем материале расскажем о том, какое образование должно быть у Data Engineer и Data Scientists, какие навыки им нужно развивать и сколько зарабатывают специалисты.
Материал изначально опубликован на habr.
Хотите написать колонку для Нетологии? Читайте наши условия публикации. Чтобы быть в курсе всех новостей и читать новые статьи, присоединяйтесь к Телеграм-каналу Нетологии.