Кто такие дата-инженеры, и как ими становятся?
И снова здравствуйте! Заголовок статьи говорит сам о себе. В преддверии старта курса «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. До встречи!
Открываем факультет Cloud Data Engineer в GeekBrains
Сейчас очень востребованы специалисты, умеющие работать с данными и создавать системы, способные эти данные обрабатывать и использовать. Но особенно востребованы те, кто умеет делать это в «облаках» — виртуальных серверах с удалённым доступом.
Обычная (не облачная) инфраструктура для бизнеса — это стойки с серверами, системные администраторы, проблемы с недостатком памяти, безопасности и частыми закупками комплектующих. Чтобы сэкономить, многие компании переходят на облачную инфраструктуру, приобретая готовые облачные серверы и сервисы с обслуживанием у провайдера. Работоспособность такого решения становится головной болью провайдера.
За последние 10 лет множество компаний совершенно разного масштаба уже организовали свои бизнес-процессы и работу с данными с помощью облачных решений. Это серьёзный тренд, рост и темпы которого будут такими же насыщенными и следующие 10 лет.
Кто такой Cloud Data Engineer и что он делает
Главная задача Cloud Data Engineer — используя облачную инфраструктуру и сервисы, помогать бизнесу строить продукт, который обеспечивает принятие управленческих решений на основе фактических данных — это называется Data Driven Decisions Making, DDDM.
Объясняем DDDM на примере Walmart
Walmart — крупнейший мировой ритейлер с более чем 20 000 магазинов в 28 странах. Компания находится в процессе создания крупнейшего в мире частного облака, настолько мощного, чтобы стала возможной обработка 2,5 петабайта данных каждый час. Чтобы разобраться во всей этой информации, Walmart создал то, что он называет своим Data Café — по сути это ультрасовременный аналитический центр.
Data Café позволяет быстро моделировать, обрабатывать и визуализировать огромные объёмы внутренних и внешних данных. Навин Педдамейл, старший статистический аналитик, объяснил важность и ценность Data Café так: «Если вы не можете получить информацию, пока не проанализируете свои продажи за неделю или месяц, значит, вы просто теряете продажи за это время».
Поэтому быстрый доступ к аналитической информации жизненно важен. Например, однажды в одной продуктовой группе не могли понять, почему продажи в определённой категории продуктов внезапно упали. Изучив данные, там быстро увидели, что из-за просчётов товары выставлялись по более высокой цене, чем следовало бы.
Data Café также предоставляет автоматические оповещения. Когда определённые показатели опускаются ниже установленного порога в любом отделе, соответствующая команда получает оповещение, чтобы быстро найти решение. Например, во время Хэллоуина аналитики продаж смогли увидеть в режиме реального времени, что конкретная новинка в одной линейке печенья была очень популярна в большинстве магазинов и совсем не продавалась в двух точках. Оповещение побудило к быстрому расследованию, которое показало, что из-за ошибки в проверке товаров на складе печенье не было разложено на полках. После этого магазин смог немедленно исправить ситуацию.
Cloud Data Engineer является пользователем такой системы. Он не строит их, как можно подумать,, а использует для обработки данных, извлечения business value. В примере с Walmart инженеры помогли выстроить все процессы преобразования данных и организовать сложные пайплайны, обеспечивающие принятие решений на основе данных.
Чем Cloud Data Engineer отличается от Data Engineer
Cloud Data Engineer умеет делать всё, что делает Data Engineer — отвечает за извлечение, преобразование, загрузку данных и их обработку. Но делает это с помощью облачных сервисов. Умеет доставлять данные в облако, объединять облачные и on-premise решения. Также Cloud Data Engineer строит масштабируемые, отказоустойчивые, эффективные решения по обработке данных с использованием сервисов облака — S3, Kubernetes, DBaaS, Hadoop, Monitoring-aaS — понимая при этом сильные стороны облачных решений.
Когда для бизнеса приоритетна скорость разработки нового продукта, гибкость и масштабируемость, процессы по работе с данными переносятся в облако. Cloud Data Engineer — это тот, кто помогает решить возникающие вопросы. Такой специалист строит платформы по работе с данными, а также озёра данных и хранилища в облаке.
Про авторов программы факультета
Программа факультета Cloud Data Engineer разработана Александром Волынским — архитектором облачной платформы Mail.ru Cloud Solutions. Александр и его коллеги знают основные боли и потребности рынка, поэтому в программе учтены все актуальные инструменты и решения, освоение которых поможет вам стать востребованным специалистом.
Кому подойдёт обучение, сколько продлится и какие возможности откроет студентам
Программа подойдёт специалистам с опытом — бигдата-аналитикам, аналитикам и инженерам данных, дата-сайентистам, девопс-специалистам и системным администраторам. Для комфортного обучения будет необходим опыт работы со следующими инструментами:
Будет плюсом знание:
Продолжительность обучения на факультете — 10-11 месяцев. После него студенты смогут работать в любом облачном сервисе с задачами аналитики, разработки баз данных и машинного обучения. Научатся самостоятельно выбирать и настраивать необходимые сервисы в облачных платформах для решения поставленных бизнесом задач. Также выпускники факультета смогут использовать современные решения по управлению качеством данных, метаданными, выводу моделей машинного обучения в продуктивное использование с использованием Kubernetes.
Во время обучения у студентов будет много практики с Mail.ru Cloud, а также другими инструментами:
А также мы не забудем про JupyterHub, Greenplum, MLflow, Amundsen, Linux, Docker и, Git.
С расширенными знаниями студенты смогут претендовать на новые для себя должности — Cloud Data Engineer, Data Engineer или ETL-разработчик. Только на HH.ru есть 2100 актуальных вакансий в России.
Зарплата джуниор-специалистов варьируется от 100 до 150 тыс рублей, мидлов — от 150 до 250 тыс рублей, а синьоры получают от 250 до 400-500 тыс рублей, в зависимости от экспертности, компании и уровня менеджерской нагрузки специалиста.
Узнать больше о факультете, преподавателях и условиях обучения можно на его странице.
Также рекомендуем к прочтению три интересные статьи IT-журнала «Завтра облачно» от Mail.Ru Cloud Solutions:
Сейчас очень востребованы специалисты, умеющие работать с данными и создавать системы, способные эти данные обрабатывать и использовать. Но особенно востребованы те, кто умеет делать это в «облаках» — виртуальных серверах с удалённым доступом.
Обычная (не облачная) инфраструктура для бизнеса — это стойки с серверами, системные администраторы, проблемы с недостатком памяти, безопасности и частыми закупками комплектующих. Чтобы сэкономить, многие компании переходят на облачную инфраструктуру, приобретая готовые облачные серверы и сервисы с обслуживанием у провайдера. Работоспособность такого решения становится головной болью провайдера.
За последние 10 лет множество компаний совершенно разного масштаба уже организовали свои бизнес-процессы и работу с данными с помощью облачных решений. Это серьёзный тренд, рост и темпы которого будут такими же насыщенными и следующие 10 лет.
Кто такой Cloud Data Engineer и что он делает
Главная задача Cloud Data Engineer — используя облачную инфраструктуру и сервисы, помогать бизнесу строить продукт, который обеспечивает принятие управленческих решений на основе фактических данных — это называется Data Driven Decisions Making, DDDM.
Объясняем DDDM на примере Walmart
Walmart — крупнейший мировой ритейлер с более чем 20 000 магазинов в 28 странах. Компания находится в процессе создания крупнейшего в мире частного облака, настолько мощного, чтобы стала возможной обработка 2,5 петабайта данных каждый час. Чтобы разобраться во всей этой информации, Walmart создал то, что он называет своим Data Café — по сути это ультрасовременный аналитический центр.
Data Café позволяет быстро моделировать, обрабатывать и визуализировать огромные объёмы внутренних и внешних данных. Навин Педдамейл, старший статистический аналитик, объяснил важность и ценность Data Café так: «Если вы не можете получить информацию, пока не проанализируете свои продажи за неделю или месяц, значит, вы просто теряете продажи за это время».
Поэтому быстрый доступ к аналитической информации жизненно важен. Например, однажды в одной продуктовой группе не могли понять, почему продажи в определённой категории продуктов внезапно упали. Изучив данные, там быстро увидели, что из-за просчётов товары выставлялись по более высокой цене, чем следовало бы.
Data Café также предоставляет автоматические оповещения. Когда определённые показатели опускаются ниже установленного порога в любом отделе, соответствующая команда получает оповещение, чтобы быстро найти решение. Например, во время Хэллоуина аналитики продаж смогли увидеть в режиме реального времени, что конкретная новинка в одной линейке печенья была очень популярна в большинстве магазинов и совсем не продавалась в двух точках. Оповещение побудило к быстрому расследованию, которое показало, что из-за ошибки в проверке товаров на складе печенье не было разложено на полках. После этого магазин смог немедленно исправить ситуацию.
Cloud Data Engineer является пользователем такой системы. Он не строит их, как можно подумать,, а использует для обработки данных, извлечения business value. В примере с Walmart инженеры помогли выстроить все процессы преобразования данных и организовать сложные пайплайны, обеспечивающие принятие решений на основе данных.
Чем Cloud Data Engineer отличается от Data Engineer
Cloud Data Engineer умеет делать всё, что делает Data Engineer — отвечает за извлечение, преобразование, загрузку данных и их обработку. Но делает это с помощью облачных сервисов. Умеет доставлять данные в облако, объединять облачные и on-premise решения. Также Cloud Data Engineer строит масштабируемые, отказоустойчивые, эффективные решения по обработке данных с использованием сервисов облака — S3, Kubernetes, DBaaS, Hadoop, Monitoring-aaS — понимая при этом сильные стороны облачных решений.
Когда для бизнеса приоритетна скорость разработки нового продукта, гибкость и масштабируемость, процессы по работе с данными переносятся в облако. Cloud Data Engineer — это тот, кто помогает решить возникающие вопросы. Такой специалист строит платформы по работе с данными, а также озёра данных и хранилища в облаке.
Про авторов программы факультета
Программа факультета Cloud Data Engineer разработана Александром Волынским — архитектором облачной платформы Mail.ru Cloud Solutions. Александр и его коллеги знают основные боли и потребности рынка, поэтому в программе учтены все актуальные инструменты и решения, освоение которых поможет вам стать востребованным специалистом.
Кому подойдёт обучение, сколько продлится и какие возможности откроет студентам
Программа подойдёт специалистам с опытом — бигдата-аналитикам, аналитикам и инженерам данных, дата-сайентистам, девопс-специалистам и системным администраторам. Для комфортного обучения будет необходим опыт работы со следующими инструментами:
Будет плюсом знание:
Продолжительность обучения на факультете — 10-11 месяцев. После него студенты смогут работать в любом облачном сервисе с задачами аналитики, разработки баз данных и машинного обучения. Научатся самостоятельно выбирать и настраивать необходимые сервисы в облачных платформах для решения поставленных бизнесом задач. Также выпускники факультета смогут использовать современные решения по управлению качеством данных, метаданными, выводу моделей машинного обучения в продуктивное использование с использованием Kubernetes.
Во время обучения у студентов будет много практики с Mail.ru Cloud, а также другими инструментами:
А также мы не забудем про JupyterHub, Greenplum, MLflow, Amundsen, Linux, Docker и, Git.
С расширенными знаниями студенты смогут претендовать на новые для себя должности — Cloud Data Engineer, Data Engineer или ETL-разработчик. Только на HH.ru есть 2100 актуальных вакансий в России.
Зарплата джуниор-специалистов варьируется от 100 до 150 тыс рублей, мидлов — от 150 до 250 тыс рублей, а синьоры получают от 250 до 400-500 тыс рублей, в зависимости от экспертности, компании и уровня менеджерской нагрузки специалиста.
Узнать больше о факультете, преподавателях и условиях обучения можно на его странице.
Кто такой Data Engineer и как им стать
Сделали адаптированный перевод статьи Oleksii Kharkovyna о том, кто такие инженеры данных и что нужно знать новичкам, чтобы освоить профессию.
Инженер данных — смесь аналитика данных и дата-сайентиста. Он отвечает за извлечение, преобразование, загрузку данных и их обработку. Профессия востребована в первую очередь благодаря высоким зарплатам и спросу среди работодателей. Дальше расскажу, какие задачи выполняют инженеры данных, чем отличаются от дата-сайентистов и что нужно знать тем, кто хочет освоить специальность.
Что такое инженерия данных
«Учёный может открыть новую звезду, но не может создать её. Для этого ему пришлось бы обратиться к инженеру», — Гордон Линдсей Глегг
Из названия специальности следует, что она связана с данными: их доставкой, хранением и обработкой. Главная задача инженера — подготовить надёжную инфраструктуру для данных. В ИИ-иерархии потребностей инженерия данных занимает первые две-три ступени: сбор, перемещение и хранение, подготовка данных.
Что делает инженер данных
С появлением Big Data сфера ответственности специалистов по обработке данных изменилась. Если раньше инженеры писали большие SQL-запросы и обрабатывали данные с помощью таких инструментов, как Informatica ETL, Pentaho ETL, Talend, то теперь от них ждут большего. Специалисту нужно отлично знать SQL и Python, желательно — Java/Scala, иметь опыт работы с облачными платформами, в частности Amazon Web Services.
И это только самое необходимое. Логично предположить, что инженеры должны разбираться в разработке программного обеспечения и серверной разработке. В компании, которая генерирует большой объем данных из разных источников, задача инженера — организовать сбор информации, её обработку и хранение.
Инструменты могут отличаться — всё зависит от объема данных, их скорости поступления и неоднородности. Многие компании вообще не работают с большими данными, поэтому в качестве централизованного хранилища используют базу SQL (PostgreSQL, MySQL) с небольшим количеством скриптов, которые направляют данные в репозиторий.
У IT-гигантов вроде Google, Amazon, Facebook или Dropbox требования к кандидатам выше:
Основной упор в технологиях Big Data сейчас делают на их обработку в условиях высокой нагрузки. Поэтому компании повысили требования к отказоустойчивости системы.







