Что такое дата инженер

Кто такие дата-инженеры, и как ими становятся?

И снова здравствуйте! Заголовок статьи говорит сам о себе. В преддверии старта курса «Data Engineer» предлагаем разобраться в том, кто же такие дата-инженеры. В статье очень много полезных ссылок. Приятного прочтения.

Что такое дата инженер. Смотреть фото Что такое дата инженер. Смотреть картинку Что такое дата инженер. Картинка про Что такое дата инженер. Фото Что такое дата инженер

Простое руководство о том, как поймать волну Data Engineering и не дать ей затянуть вас в пучину.

Складывается впечатление, что в наши дни каждый хочет стать дата-саентистом (Data Scientist). Но как насчет Data Engineering (инжиниринга данных)? По сути, это своего рода гибрид дата-аналитика и дата-саентиста; дата-инженер обычно отвечает за управление рабочими процессами, конвейерами обработки и ETL-процессами. Ввиду важности этих функций, в настоящее время это очередной популярный профессиональный жаргонизм, который активно набирает обороты.

Высокая зарплата и огромный спрос — это лишь малая часть того, что делает эту работу чрезвычайно привлекательной! Если вы хотите пополнить ряды героев, никогда не поздно начать учиться. В этом посте я собрал всю необходимую информацию, чтобы помочь вам сделать первые шаги.

Итак, начнем!

Что такое Data Engineering?

Честно говоря, нет лучшего объяснения, чем это:

«Ученый может открыть новую звезду, но не может ее создать. Ему придется просить инженера сделать это за него.»

–Гордон Линдсей Глегг

Таким образом, роль дата-инженера достаточно весома.

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

Что такое дата инженер. Смотреть фото Что такое дата инженер. Смотреть картинку Что такое дата инженер. Картинка про Что такое дата инженер. Фото Что такое дата инженер

Чем занимается инженер данных?

С появлением больших данных сфера ответственности резко изменилась. Если раньше эти эксперты писали большие SQL-запросы и перегоняли данные с помощью таких инструментов, как Informatica ETL, Pentaho ETL, Talend, то теперь требования к дата-инженерам повысились.

Большинство компаний с открытыми вакансиями на должность дата-инженера предъявляют следующие требования:

Список используемых в этом случае инструментов может отличаться, все зависит от объема этих данных, скорости их поступления и неоднородности. Большинство компаний вообще не сталкиваются с большими данными, поэтому в качестве централизованного хранилища, так называемого хранилища данных, можно использовать базу данных SQL (PostgreSQL, MySQL и т. д.) с небольшим набором скриптов, которые направляют данные в хранилище.

IT-гиганты, такие как Google, Amazon, Facebook или Dropbox, предъявляют более высокие требования: знание Python, Java или Scala.

Дата-инженеры Vs. дата-саентисты

Что такое дата инженер. Смотреть фото Что такое дата инженер. Смотреть картинку Что такое дата инженер. Картинка про Что такое дата инженер. Фото Что такое дата инженер
Ладно, это было простое и забавное сравнение (ничего личного), но на самом деле все намного сложнее.

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

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

Является ли дата-инженер более востребованным, чем дата-саентист?

— Да, потому что прежде чем вы сможете приготовить морковный пирог, вам нужно сначала собрать, очистить и запастись морковью!

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

Но вот преимущество дата-инженера: без него/нее ценность модели-прототипа, чаще всего состоящей из фрагмента кода ужасного качества в файле Python, полученной от дата-саентиста и каким-то образом дающей результат, стремится к нулю.

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

Основные сведения, которые должен знать дата-инженер

Что такое дата инженер. Смотреть фото Что такое дата инженер. Смотреть картинку Что такое дата инженер. Картинка про Что такое дата инженер. Фото Что такое дата инженер

Итак, если эта работа пробуждает в вас свет и вы полны энтузиазма — вы способны научиться этому, вы можете овладеть всеми необходимыми навыками и стать настоящей рок-звездой в области разработки данных. И, да, вы можете осуществить это даже без навыков программирования или других технических знаний. Это сложно, но возможно!

Каковы первые шаги?

Вы должны иметь общее представление о том, что есть что.

Прежде всего, Data Engineering относится к информатике. Конкретне — вы должны понимать эффективные алгоритмы и структуры данных. Во-вторых, поскольку дата-инженеры работают с данными, необходимо понимание принципов работы баз данных и структур, лежащих в их основе.

Например, обычные B-tree SQL базы данных основаны на структуре данных B-Tree, а также, в современных распределенных репозиториях, LSM-Tree и других модификациях хеш-таблиц.

* Эти шаги основаны на замечательной статье Адиля Хаштамова. Итак, если вы знаете русский язык, поддержите этого автора и прочитайте его пост.

1. Алгоритмы и структуры данных

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

Вся наша жизнь — это данные. И для того, чтобы извлечь эти данные из базы данных, вам нужно «говорить» с ними на одном языке.

SQL (Structured Query Language — язык структурированных запросов) является языком общения в области данных. Независимо от того, что кто-то говорит, SQL жил, жив и будет жить еще очень долго.

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

Для анализа большого слоя данных, хранящихся в распределенных системах, таких как HDFS, были изобретены механизмы SQL: Apache Hive, Impala и т. д. Видите, он не собирается никуда уходить.

Как выучить SQL? Просто делай это на практике.

Для этого я бы порекомендовал ознакомиться с отличным учебником, который, кстати, бесплатный, от Mode Analytics.

3. Программирование на Python и Java/Scala

Почему стоит изучать язык программирования Python, я уже писал в статье Python vs R. Выбор лучшего инструмента для AI, ML и Data Science. Что касается Java и Scala, большинство инструментов для хранения и обработки огромных объемов данных написаны на этих языках. Например:

Чтобы погрузиться в язык Scala, вы можете прочитать Программирование в Scala от автора языка. Также компания Twitter опубликовала хорошее вводное руководство — Scala School.

Что касается Python, я считаю Fluent Python лучшей книгой среднего уровня.

4. Инструменты для работы с большими данными

Вот список самых популярных инструментов в мире больших данных:

Что такое дата инженер. Смотреть фото Что такое дата инженер. Смотреть картинку Что такое дата инженер. Картинка про Что такое дата инженер. Фото Что такое дата инженер

Знание хотя бы одной облачной платформы находится в списке базовых требований, предъявляемым к соискателям на должность дата-инженера. Работодатели отдают предпочтение Amazon Web Services, на втором месте — облачная платформа Google, и замыкает тройку лидеров Microsoft Azure.

Вы должны хорошо ориентироваться в Amazon EC2, AWS Lambda, Amazon S3, DynamoDB.

6. Распределенные системы

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

Эндрю Таненбаум считается пионером в этой области. Для тех, кто не боится теории, я рекомендую его книгу «Распределенные системы», для начинающих она может показаться сложной, но это действительно поможет вам отточить свои навыки.

Я считаю «Проектирование приложений с интенсивным использованием данных» под авторством Мартина Клеппманна лучшей вводной книгой. Кстати, у Мартина есть замечательный блог. Его работа поможет систематизировать знания о построении современной инфраструктуры для хранения и обработки больших данных.

Для тех, кто любит смотреть видео, на Youtube есть курс Распределенные компьютерные системы.

7. Конвейеры данных

Что такое дата инженер. Смотреть фото Что такое дата инженер. Смотреть картинку Что такое дата инженер. Картинка про Что такое дата инженер. Фото Что такое дата инженер

Конвейеры данных — это то, без чего вы не можете жить в качестве дата-инженера.

Большую часть времени дата-инженер строит так называемую пайплайн дату, то есть создает процесс доставки данных из одного места в другое. Это могут быть пользовательские сценарии, которые идут к API внешнего сервиса или делают SQL-запрос, дополняют данные и помещают их в централизованное хранилище (хранилище данных) или хранилище неструктурированных данных (озера данных).

Подводя итог: основной чеклист дата-инженера

Что такое дата инженер. Смотреть фото Что такое дата инженер. Смотреть картинку Что такое дата инженер. Картинка про Что такое дата инженер. Фото Что такое дата инженер

Подытожим — необходимо хорошее понимание следующего:

И, наконец, последнее, но очень важное, что я хочу сказать.

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

Просто не приукрашивайте его с самого начала. Весь смысл путешествия в том, чтобы узнать как можно больше и быть готовым к новым вызовам.

Вот отличная картинка, с которой я столкнулся, которая хорошо иллюстрирует этот момент:

Что такое дата инженер. Смотреть фото Что такое дата инженер. Смотреть картинку Что такое дата инженер. Картинка про Что такое дата инженер. Фото Что такое дата инженер

И да, не забудьте избегать выгорания и отдыхать. Это тоже очень важно. Удачи!

Как вам статья, друзья? Приглашаем на бесплатный вебинар, который состоится уже сегодня в 20.00. В рамках вебинара обсудим, как построить эффективную и масштабируемую систему обработки данных для небольшой компании или стартапа с минимальными затратами. В качестве практики познакомимся с инструментами обработки данных Google Cloud. До встречи!

Источник

Data Engineer и Data Scientist: что умеют и сколько зарабатывают

Вместе с Еленой Герасимовой, руководителем факультета «Data Science и аналитика» в Нетологии, продолжаем разбираться, как взаимодействуют между собой и чем различаются Data Scientist и Data Engineer.

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

Что должны знать сайентисты и инженеры

Профильное образование для обоих специалистов — Computer Science.

Что такое дата инженер. Смотреть фото Что такое дата инженер. Смотреть картинку Что такое дата инженер. Картинка про Что такое дата инженер. Фото Что такое дата инженер

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

Машинное обучение и инструменты анализа данных незаменимы в современном мире. Если привычные инструменты недоступны, нужно иметь навыки быстрого изучения новых инструментов, создания простых скриптов для автоматизации задач.

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

Что такое дата инженер. Смотреть фото Что такое дата инженер. Смотреть картинку Что такое дата инженер. Картинка про Что такое дата инженер. Фото Что такое дата инженер

Для инженера данных на первый план выходят три направления.

Алгоритмы и структуры данных. Важно набить руку в написании кода и использовании основных структур и алгоритмов:

Сколько получают инженеры и сайентисты

Доход инженеров по обработке данных

В России в начале карьеры зарплата обычно не меньше 50 тыс. рублей в регионах и 80 тыс. в Москве. На этом этапе не требуется опыт, кроме пройденного обучения.

Через 1‒2 года работы — вилка 90‒100 тыс. рублей.

Вилка увеличивается до 120‒160 тыс. через 2‒5 лет. Добавляются такие факторы, как специализация прошлых компаний, размер проектов, работа с big data и прочее.

После 5 лет работы легче искать вакансии в смежных отделах или откликаться на такие узкоспециализированные позиции, как:

Доход дата-сайентистов

Исследование рынка аналитиков компании «Нормальные исследования» и рекрутингового агентства New.HR показывает, что специалисты по Data Science получают в среднем большую зарплату, чем аналитики других специальностей.

В России начальная зарплата дата-сайентиста с опытом работы до года — от 113 тыс. рублей.

В качестве опыта работы сейчас также учитывается прохождение обучающих программ.

Через 1‒2 года такой специалист уже может получать до 160 тыс.

Для сотрудника с опытом работы от 4‒5 лет вилка вырастает до 310 тыс.

Как проходят собеседования

На западе выпускники программ профессионального обучения проходят первое собеседование в среднем через 5 недель после окончания обучения. Около 85% находят работу через 3 месяца.

Процесс прохождения собеседований на вакансии инженера данных и дата-сайентиста практически не различается. Обычно состоит из пяти этапов.

Резюме. Кандидатам с непрофильным предыдущим опытом (например, из маркетинга) необходимо для каждой компании подготовить подробное сопроводительное письмо или иметь рекомендации от представителя этой компании.

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

HR-интервью. Может проходить по телефону. На этом этапе кандидата проверяют на общую адекватность и способность общаться.

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

Собеседование с техническим директором / главным архитектором. Инженер и сайентист — стратегические позиции, а для многих компаний к тому же новые. Важно, чтобы потенциальный коллега понравился руководителю и совпадал с ним во взглядах.

Что поможет сайентистам и инженерам в карьерном росте

Появилось достаточно много новых инструментов по работе с данными. И мало кто одинаково хорошо разбирается во всех.

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

Полезные качества для дата-инженера и дата-сайентиста

Желание и умение учиться. Необязательно сразу гнаться за опытом или менять работу ради нового инструмента, но нужно быть готовым переключиться на новую область.

Стремление к автоматизации рутинных процессов. Это важно не только для продуктивности, но и для поддержания высокого качества данных и скорости их доставки до потребителя.

Внимательность и понимание «что там под капотом» у процессов. Быстрее решит задачу тот специалист, у которого есть насмотренность и доскональное знание процессов.

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

Например, полезно взять любой известный сервис и придумать для него базу данных. Затем подумать, как разработать ETL и DW, которые наполнят её данными, какие будут потребители и что им важно знать о данных, а также как покупатели взаимодействуют с приложениями: для поиска работы и знакомств, прокат автомобилей, приложение для подкастов, образовательная платформа.

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

В любом случае, обладателям любого ИТ-бэкграунда будет проще, чем тем, у кого его нет. В среднем взрослые мотивированные люди переучиваются и меняют работу каждые 1,5‒2 года. Легче это даётся тем, кто учится в группе и с наставником, по сравнению с теми, кто опирается лишь на открытые источники.

От редакции Нетологии

Если присматриваетесь к профессии Data Engineer или Data Scientist, приглашаем изучить программы наших курсов:

Источник

Data Engineer — кто это и чем он занимается?

Что такое дата инженер. Смотреть фото Что такое дата инженер. Смотреть картинку Что такое дата инженер. Картинка про Что такое дата инженер. Фото Что такое дата инженер

По мере того как данные становились стратегически важной составляющей бизнеса, а их сбор и анализ помогали получать все больше полезных инсайтов, наука о данных обрастала сразу несколькими сложными и похожими специализациями. На первый взгляд, они могут показаться дублирующими профессиями со смежными функциями: Data Scientist или исследователь данных, Data Analyst или аналитик данных, Data Engineer или инженер данных, инженер по машинному обучению, администратор баз данных и так далее. Все эти специалисты используют в своей работе основной ресурс — данные, и их функции действительно пересекаются, но если приглядеться, то переплетающиеся роли довольно четко разделены, а с развитием Data Science и ее ответвлений они получат еще более ясное разграничение.

Data Scientist vs. Data Engineer

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

Как это работает в реальности?

Представим, что некая компания занимается продажей диванов широкого ассортимента через сайт. Всякий раз, когда посетитель сайта нажимает на тот или иной диван, создается новый элемент данных. Теперь дата-инженеру нужно определить как собрать эти данные, какого типа метаданные будут добавлены для каждого клика-события и как хранить данные в удобном для доступа формате. А Data Scientist должен будет взять данные о том, какие клиенты купили те или иные диваны и использовать их, чтобы предсказать вариант идеального дивана для каждого нового посетителя сайта.

Или предположим, что вы дата-инженер в компании Rebu, молодом конкуренте Uber. Ваши пользователи заказывают такси через приложение. Итак, они отмечают пункт назначения, одновременно, в приложении у водителя отображается маршрут, затем он забирает пассажиров и высаживает их в пункте назначения. Далее пассажиры оплачивают поездку и имеют возможность поставить оценку водителю. Чтобы эта система работала, вам понадобится:

Допустим, ваш коллега, Data Scientist, хочет проанализировать историю действий пользователя вашего сервиса и посмотреть какие действия связаны с пользователями, которые тратят больше денег. Чтобы помочь коллеге, вам необходимо будет собрать информацию логов сервера и журналов событий приложения. Для этого вам нужно:

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

Исходя из этих примеров, Data Engineer фокусируется на построении инфраструктуры и архитектуры генерации данных, а Data Scientist сосредотачивает свои усилия на взаимодействии с инфраструктурой данных. К несчастью для обоих, компании часто ограничиваются должностью Data Scientist и не создают отдельную позицию Data Engineer. Такой подход грозит чрезмерной загруженностью первого, когда до 80% времени он тратит на добычу и обработку данных, закапываясь в массивах информации.

Что именно делает Data Engineer и какие инструменты он использует?

Итак, инженер по данным сможет:

Как видно из обязанностей дата-инженера, его роль в компании особенно важна — он участвует в начальной и финальной стадиях анализа данных, а также поддерживает созданные пайплайны. Работая в паре с Data Scientist, инженер данных в разы повышает эффективность его деятельности. Для этого профессиональному дата-инженеру нужно иметь сильные навыки программирования, чтобы писать качественный, “чистый” код, а также глубокое понимание экосистемы больших данных и распределенных систем. Если коротко, то его навыки это — Hadoop, MapReduce, Hive, Pig, дата-стриминг, NoSQL и SQL. Вместе с тем, ему не обязательно владеть фундаментальными знаниями в математике и навыками построении алгоритмов, в отличие от исследователя данных. Среди его инструментов часто можно увидеть: SAP, Oracle, Cassandra, MySQL, Redis, Riak, PostgreSQL, MongoDB, neo4j, Hive и Sqoop.

Таким образом, ни одна компания, желающая создать свой data-отдел или заняться качественным исследованием данных и извлечением из них полезной информации, не сможет получить результат, наняв одного лишь Data Scientist — необходимо будет найти и привести в компанию специалиста, который бы наладил процесс сбора данных и организовал их предварительную подготовку. К тому же он сможет взять на себя рутинные задачи по обработке данных и, тем самым, высвободить время для качественных моделей, которые так любит строить исследователь данных.

В data engineering приходят люди с разным опытом и образованием: это и computer science, и computer engineering, а также математика, экономика и часто — бизнес-аналитика. В любом случае, даже если вы считаете, что чтобы стать Data Engineer, вам чего-то недостает, но желание развиваться в этой области перевешивает, идите к своей цели и развивайтесь в этом направлении. Каждый профессионал в какой-то момент начинает со своего уникального набора навыков и знаний, а зачастую целеустремленность и талант играют решающую роль в его становлении.

Если вы хотите развиваться в области Data Engineering, то обратите внимание на наш курс, позволяющий полностью освоить новое направление.

Освойте практический курс по одному из самых перспективных направлений в Big Data и станьте востребованным специалистом.Скидка по промокоду BLOG 5%.

Источник

Дата-инженеры в бизнесе: кто они и чем занимаются?

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

И хоть построение крутой модели — неотъемлемо важная часть, но все же это не залог успеха в решении подобных задач. Качество модели в большой степени зависит от качества данных, которые собираются для нее. И если Data Science применяется не ради спортивного интереса, а для удовлетворения реальных потребностей компании, то на это качество можно повлиять на этапе сбора и обогащения данных. И за это отвечает скорее не дата-сайентист, а другой специалист — дата-инженер.

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

Что такое дата инженер. Смотреть фото Что такое дата инженер. Смотреть картинку Что такое дата инженер. Картинка про Что такое дата инженер. Фото Что такое дата инженер

Какие роли есть в Data Science-проекте?

К сожалению, не для всех названий ролей есть аналоги в русском языке. Если у вас в компании есть устоявшееся русское название, например, для Data Ingest, то поделитесь им в комментариях.

Например, можно выделить следующие роли:

Что такое Data Science-проект?

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

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

Что такое дата инженер. Смотреть фото Что такое дата инженер. Смотреть картинку Что такое дата инженер. Картинка про Что такое дата инженер. Фото Что такое дата инженер

Сам график с количеством не требует дата-сайенса, но уже требует дата-инженерии.

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

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

Как, наверное, для любой проблемы сначала стоит посмотреть, есть ли на рынке готовые решения. И во многих случаях окажется, что они есть. Например, существуют системы, которые умеют детектить простои тем или иным способом. Однако та же Moira не справлялась полностью с нашими проблемами (из коробки она ориентируется на статические правила — которыми задать наши условия достаточно сложно). Поэтому мы решили писать классификатор самостоятельно.

И дальше в статье рассматриваются те случаи, когда нет готового решения, которое полностью бы удовлетворяло возникшим потребностям, или если даже оно есть, то мы не знаем о нем или оно нам недоступно.

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

Порядок действий в DS-проекте

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

Что такое дата инженер. Смотреть фото Что такое дата инженер. Смотреть картинку Что такое дата инженер. Картинка про Что такое дата инженер. Фото Что такое дата инженер
В проектах, которыми мы занимались, один такой круг занимал по времени около 1,5-2 недель.

Дата-сайентист точно участвует на этапе построения модели и при оценке результата. Все остальные этапы чаще ложатся на плечи дата-инженера.

Теперь рассмотрим этот процесс подробнее.

Сбор датасета

Как мы сказали, без набора данных бессмысленно начинать любой Data Science. Давайте посмотрим, из каких данных получился график с количеством платежей.

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

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

В реальной жизни микросервисы появились неспроста: такой атомарной операции, как платеж, не существует. У нас даже есть такое внутреннее понятие, как процесс платежа — последовательность операций для его выполнения. Например, в эту последовательность могут входить следующие операции:

Действия могут быть как явно существующими в этом процессе, так и суррогатными (расчетными).

И в нашем примере мы решили, что нам будет достаточно знать два следующих шага:

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

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

На этом этапе важно помнить, что большинство моделей классификаций на входе принимает матрицу признаков (набор m чисел и n столбцов). А события, которые мы получаем, например, из Kafka, — это текст, а не числа, и из этого текста матрицу не составишь. Поэтому изначально текстовые записи нужно преобразовать в числовые значения.

Составление корректного датасета состоит из следующих этапов:

Например, в поле «дата» появился платеж 1970 года, и такую запись, скорее всего, не следует учитывать (если мы в принципе хотим использовать время как признак).

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

Следующий шаг — разметка. Это тот момент, когда мы помечаем аварии как «аварии». Очень часто это самый дорогостоящий этап в сборе датасета.

Что такое дата инженер. Смотреть фото Что такое дата инженер. Смотреть картинку Что такое дата инженер. Картинка про Что такое дата инженер. Фото Что такое дата инженер
Предполагается, что изначально мы знаем откуда-нибудь про аварии. Например, операции идут, затем их количество резко падает (как на картинке выше), а потом они восстанавливаются снова, и кто-то нам говорит: «Вот там и была авария». А дальше нам хочется автоматически находить идентичные кейсы.

Интереснее ситуация, когда операции прекращаются не полностью, а только частично (количество операций не падает до нуля). В этом суть детектинга — отслеживать изменение структуры исследуемых данных, а не их полное отсутствие.

Возможные неточности разметки приводят к тому, что классификатор будет ошибаться. Почему? Например, у нас есть две аварии, а размечена только одна из них. Соответственно, вторую аварию классификатор будет воспринимать как нормальное поведение и не рассматривать как аварию.

В нашем случае мы специально собираем вручную историю аварий, которую потом мы используем в разметке.

В итоге после серий экспериментов одним из решений задачи поиска простоев получился следующий алгоритм:

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

Только после этого дата-инженер передает эстафету (вместе с датасетом) дата-сайентисту.

А дальше.

Что же делает дата-сайентист?

Предполагаем, что проблема у нас сформулирована, дальше дата-сайентисту ее нужно решить.

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

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

Предположим, что модель выбрана, отскорена, дата-инженеры оценивают результат и получают обратную связь. Заканчивается ли на этом их работа? Конечно, нет. Приведем примеры.

Сначала немного лирического отступления. Когда я учился в школе, учительница любила спрашивать:
— А если все спрыгнут с крыши, ты тоже спрыгнешь?
Спустя какое-то время я узнал, что для этой фразы есть стандартный ответ:
— Ну… вам же никто не мешает говорить фразу, которую все говорят.

Однако после изобретения машинного обучения ответ может стать более предсказуемым:

— А если все спрыгнут с крыши, ты тоже спрыгнешь?
[изобретено машинное обучение]
— Да!

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

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

Но кроме смещения и переобучения могут возникнуть и другие проблемы.

Например, когда после сбора данных мы пытаемся на них обучиться, а потом выясняется, что один из магазинов (где проходят платежи), выглядит вот так:

Что такое дата инженер. Смотреть фото Что такое дата инженер. Смотреть картинку Что такое дата инженер. Картинка про Что такое дата инженер. Фото Что такое дата инженер

Вот такие у него операции, и все другие наши размышления про падения количества операций, как признака аварии, просто бессмысленны, так как в данном примере есть периоды, где платежей нет совсем. И это нормальный период, тут нет ничего страшного. Что это для нас означает? Это как раз и есть тот случай, когда указанный выше алгоритм не работает.

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

В итоге

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *