В России катастрофически не хватает инженеров данных – кому и зачем они нужны
Что такое Data Engineering? Суть Data Engineering заключается в построении стабильных пайплайнов добычи и обработки данных, чтобы они были доступны всем сотрудникам компании. Главная задача Data Engineer – сделать процесс анализа данных в компании максимально удобным для аналитиков, обеспечить их очищенными данными в должном количестве и в должный срок. Среди обязанностей Data engineer можно выделить три больших блока: Понимание сути и сбор данных. Начиная работать над каким-либо проектом, Data engineer должен вникнуть в суть данных, с которыми ему предстоит работать, чтобы понять, что именно нужно аналитику для построения эффективной модели. Какие типы данных свойственны нашей компании? Современные алгоритмы могут работать практически с любым типом информации, поэтому важно определить, будем ли мы использовать текст, clickstream с сайта, изображения, аудиозаписи или что-то другое. Инженеру данных необходимо определить основные источники данных, среди которых выделяют внутреннюю информацию: финансовые отчеты, корпоративные базы данных, заявки на сайте и внешние источники – социальные сети, новостные заголовки, логи с датчиков на самолете или Internet of Things. Как мы можем получить доступ к этим источникам? В какой форме они хранятся, и в каком виде мы их извлекаем? Ответы на эти вопросы позволят инженеру перейти непосредственно к разработке инфраструктуры. Построение архитектуры пайплайна обработки данных. После того, как компании всего мира начали интегрировать Data Science в свой бизнес, они столкнулись с проблемой: безболезненно интегрировать эту сферу в уже устоявшиеся внутренние процессы оказалось очень трудно. Приходилось выстраивать соответствующую инфраструктуру с нуля, поэтому сейчас возникла такая острая нехватка соответствующих специалистов, умеющих это делать грамотно. Data engineer должен владеть всем необходимым инструментарием хранения и обработки больших массивов данных. Так, например, классическим вариантом является использование экосистемы Hadoop для Big Data, а если требуется обработка в реальном времени, то вместе с Hadoop используют Apache Spark (Streaming). Кстати, о типах обработки: в Big Data архитектуре от нее зависит очень многое. Так, если аналитика основана на обучении на всех имеющихся данных, не требующих непрерывного обновления, то следует использовать batch-обработку, при которой комплексность вычислений ставится выше скорости. Такой подход используется, к примеру, в банковской сфере при анализе вероятности невозврата кредита. С другой стороны, если требуется в реальном времени обрабатывать огромное количество каких-либо запросов с интервалом в несколько секунд, то нужно использовать real time обработку, где наоборот – скорость важнее сложности вычислений. Real time обработка активно используется в сферах e-commerce, SMM, ритейл. Также в последнее время она получила широкое распространение в сфере производства, где каждый продукт от автомобиля до самолета оснащен тысячами датчиков, которые ежесекундно генерируют неимоверное количество данных в реальном времени. Превращение моделей в готовый продукт или сервис. Рассмотрим простой пример: перед Data scientist была поставлена задача построить модель – рекомендательную систему на сайте онлайн-кинотеатра, которая на основе просмотренных фильмов, поставленных оценок и комментариев «советует» пользователю посмотреть фильмы, на которые он согласится с большей вероятностью. Проходит какое-то время, задача решена, Data scientist присылает менеджеру скрипт, написанный на Python, который на основе данных будет выдавать результат. Аналитик свою задачу выполнил, но что с этой моделью делать дальше? Как превратить ее в сервис? Именно доведение моделей до стадии продакшн – одна из главных функций Data engineer. В нашем примере это значит связать рекомендательную систему с сайтом онлайн-кинотеатра и базой данных компании, и лишь в этом случае Data Science отдел будет оправдывать свое существование, принося дополнительный доход. Таким образом, Data engineer вносит ключевой вклад в получение прибыли за счет притока новых клиентов и увеличения удовлетворенности нынешних, что является одним из самых важных показателей эффективности модели для бизнеса. Конечно, помимо чистых обязанностей, есть и смежные, то есть задачи, которыми может заниматься как Data engineer, так и Data scientist. К ним относится очистка данных. Понятно, что в реальном мире все не так, как в учебных табличках, которые получают студенты на занятиях для анализа. Зачастую мы получаем данные из источников в «сыром» виде с большим количеством пропущенных значений, с кучей опечаток, числами в виде текста и так далее. Понятно, что в таком виде из них ни один data scientist не сделает качественную модель, поэтому в некоторых случаях инженер может помочь аналитику с этим. Также Data engineer может построить какую-нибудь простую модель, чтобы не отвлекать аналитика, поэтому знание основ машинного обучения не помешает и инженеру. Задача Data engineer – писать «чистый» код Главное, в чем различаются Data engineer и Data scientist – ключевые навыки, требуемые для успешной работы. Для того, чтобы стать отличным аналитиком данных, необходимо глубокое знание математического анализа, линейной алгебры, теории вероятностей и статистики, а также, несомненно, владение алгоритмами машинного обучения. Конечно, чтобы обучить какой-нибудь базовый алгоритм сегодня, требуется всего лишь применить к данным методы fit и predict из scikit-learn, но без глубокого знания математики разобраться, почему модель ведет себя именно так, а не иначе, сложно. Напротив, для работы инженером данных совсем не обязательно знать, что такое сингулярное разложение матрицы, ведь он должен строить пайплайны обработки данных, а не модели. С другой стороны, что Data engineer должен делать действительно хорошо, так это программировать, писать эффективный, «чистый» код. Без навыков написания качественного кода невозможно построить стабильный пайплайн обработки данных. Напротив, у Data scientist знание алгоритмов ценится намного выше умения писать «правильный» код, хотя, конечно, знание инструментария (Pandas, Numpy, Scikit-learn) никто не отменял. С точки зрения оплаты труда Data engineer и Data scientist могут рассчитывать на сопоставимую заработную плату – 90 и 91 тысяч долларов в год соответственно в США. В России разрыва между оплатой труда Data engineer и Data scientist также нет: по данным HeadHunter, аналитик, и инженер данных могут рассчитывать на 73-300 тысяч рублей в месяц. Таким образом, выходит, что Data engineering идеально подойдет специалистам с бэкграундом в Computer Science и Computer Engineering, но это не значит, что математикам и экономистам в этой области делать нечего. Все зависит от желания и усилий человека. Как видите, компании способны по достоинству оценить выдающегося специалиста. Ни одна компания не может обойтись одними лишь Data scientists Инженеры данных максимизируют эффективность работы Data scientist. Еще пару лет назад, читая об этой профессии можно было нередко встретить такую фразу: «Будьте готовы к тому, что 80% времени у Вас будет занимать сбор, обработка и очистка данных». Получается, что лишь 20% процентов своего рабочего времени аналитик проводит, занимаясь своим любимым делом, тем, для чего он и был нанят в первую очередь. Очевидно, что в такой ситуации легко потерять мотивацию к работе. Более того, чем меньше времени Data scientist уделяет поиску взаимосвязей в данных, тем меньше вероятность, что получится качественная модель. Осознав, что такая проблема существует, компании начали активно искать инженеров данных – людей, благодаря которым аналитики будут все свое время посвящать построению моделей, что предотвратит их потенциальный уход в другие компании и привлечет наиболее талантливых. Также не стоит забывать и о принципе garbage in — garbage out: если моделям на вход подаются некачественные данные, то бессмысленно ждать от них адекватного результата. Следовательно, на сегодняшний день ни одна data-driven компания попросту не может обойтись одними лишь Data scientists, им нужен человек, специализирующийся на организации процесса сбора и предобработки данных. Без Data engineer модели Data scientist не имеют ценности для бизнеса. Как мы уже отмечали, чаще всего результатом работы Data scientist является скрипт с моделью, но сама по себе она никакой ценности для бизнеса не имеет. Топ-менеджерам компании, по большому счету, нет дела до того, какой log loss был получен на кросс-валидации, им важно знать, сколько денег принесет тот или иной продукт. Для них именно он выходит на первый план, а не модель, которая за ним стоит. В итоге, Data engineer является залогом удовлетворенности как топ-менеджеров компании, так и непосредственно клиентов. Без него ни одна компания не сможет обеспечить себе качественный переход к data-driven бизнес-модели, поскольку он отвечает как за инфраструктуру, так и внедрение моделей в продакшн. Стоит отметить, что в некоторых компаниях Data scientist работают end-to-end и помимо построения моделей также занимаются доведением их до стадии готового продукта. Однако сейчас тенденция такова, что все же специализация и выделение отдельной роли под имплементацию модели намного эффективней, чем один супермен, который занимается всем. В России не хватает хороших инженеров данных Data engineering в России появился пару лет назад в компаниях, являющихся традиционными лидерами отечественного Data Science – банки, телеком, ритейл, e-commerce. То есть те, кто генерирует больше всего данных на единицу времени в стране. Инженеры данных обрабатывают данные из сотен различных источников (к примеру, у Сбербанка сейчас подключено более 100 хранилищ, где хранится все о клиентах и транзакциях), поэтому в этих компаниях нормальный Data engineering является жизненной необходимостью для внедрения моделей машинного обучения. Специфика Data engineering у нас заключается в остром кадровом голоде, в чем все чаще признаются HR-ы крупнейших компаний страны. В России хороших Data engineers катастрофически не хватает. На это есть свои причины: Во-первых, сейчас на рынке можно по пальцам пересчитать качественную экспертизу в построении Big Data инфраструктуры. Многие компании попросту не знают, как должен выглядеть качественный пайплайн обработки данных, поэтому они не могут четко сформулировать требования к потенциальным инженерам. Во-вторых, множество инженеров данных покидают Россию в пользу зарубежных компаний, причем не только проверенные специалисты, но даже те, кто получил лишь небольшой опыт работы в области. Что с этим делать? В течение последнего года нам периодически приходили просьбы от выпускников наших курсов по поводу создания программы, специально готовящих Data engineer, чтобы они смогли научиться работать с самыми актуальными инструментами обработки данных, среди которых, например, Kafka. Было множество запросов от работодателей, которым срочно нужны были толковые инженеры данных. В результате мы поняли, что спрос есть, и сейчас ведем набор на новую программу по направлению Data Engineering. Материалы по теме: 12 кейсов и 12 технологических решений для анализа больших данных Зачем изучать большие данные: рассказывает эксперт в ИТ и криптографии Анатолий Темкин Data Science в реальной жизни: никакой абстракции, только практика Что такое Big data: собрали всё самое важное о больших данных Как FinTech использует большие данные — хрестоматийные примеры