Чем занимается data engineer
В любом проекте есть свои сложности. Сначала определяется целевая задача и наличие данных для ее решения. Затем анализируют, каких данных и в каком объеме не хватает. Это и есть отправная точка для формирования конвейера сбора и обработки данных. Причем архитектура такого конвейера постоянно меняется.
«Важно чувствовать грань между идеальным зрелым решением и простым прототипом. Часто инженеры сталкиваются с нецелесообразностью того или иного технического решения. Это тоже результат. Результат, позволяющий обоснованно сориентироваться и пойти дальше, не зайти в технологический тупик в будущем. И в таких условиях нужно двигаться дальше, ведь потом разработанное решение будет потреблять огромные объемы данных, а обработать их заново — не всегда реализуемо», — говорит Смертенко.
Решение подобных задач возлагается на команду инженеров данных (Data Engineering Team). В ее состав входят несколько инженеров с навыками разработки ПО, глубоким пониманием концепции распределенных вычислений, SQL, администрирования, Cloud Computing платформ. И здесь важно обладать практическим опытом использования тех или иных инструментов и систем — Hadoop, Spark, Flink, YARN, Mesos, ZooKeeper, Kafka, Pulsar, Hive, Presto, HBase, Cassandra и т.д. Естественно, не каждый участник команды должен знать все. На первый план выходит синергетический эффект ее представителей.
Важно управлять ожиданиями клиента — все ведь хотят, как можно проще, эффективнее и быстрее.
«Нужно понимать и чувствовать технический компромисс. Обработка данных определяется той логикой, которая закладывается в решение конкретной задачи. Поэтому ключевое отличие инженеров данных от обычных разработчиков баз данных в том, что при большом разнообразии данных нет привязки к конкретной структуре. Структура появляется при решении конкретной задачи», — объясняет Евгений.
Одним из проектов, в котором Евгений принимал участие, предусматривал разработку и внедрение аналитической системы оценки инвестиционной привлекательности IT-компаний и стартапов. Данные собирались через различные API, применялась многоуровневая обработка. При этом использовалось огромное множество структур. Модели, формирующей рейтинг инвестиционной привлекательности, подавался набор данных о более чем 6 млн. компаний с достаточно большим перечнем характеристик (порядка 600 параметров): количество сотрудников, динамика роста за последние полгода, инвестиции, участие в конференциях, публикации, индексы цитируемости и т.д. Кроме того, модель оценки постоянно эволюционировала, что в результате приводило к изменению требований как к структуре исходных данных, так и к их обработке.
По его словам, сейчас многим клиентам интересна разработка и внедрение аналитических платформ, включающих извлечение дополнительной ценности из данных на основе аналитических моделей: Machine Learning & Deep Learning. Ответственные за такие модели другие инженеры — data scientists.
«Встречаются разные ситуации, когда команды data science работают независимо от инженеров данных или когда инженеры данных выполняют задачи моделирования и т.д. Однако общепризнанным является факт органичного объединения в рамках одной команды data engineers & data scientists, где вся команда работает на один результат. В таких командах с одной стороны каждый является автономным инженером, с другой — отличным командным игроком. Подобный подход является одним из ключевых составляющих успешности разработки и внедрения проектов Big Data», — объясняет Евгений.