Data Engineers: мифы против реальности

Опубликовано: 2018-05-10

Наука о данных прошла долгий путь от беспилотных автомобилей до автоматического добавления тегов к изображениям. Ученые и аналитики данных стали неотъемлемой частью любой организации из-за ценности, которую они добавляют. Но, честно говоря, специалист по данным хорош настолько, насколько хороши данные, с которыми он работает. Большинство организаций сегодня хранят свои данные в различных форматах и ​​на многочисленных платформах. А вот и потребность в дата-инженерах!

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

В этом отношении инженеры данных — незаметные герои любой команды аналитиков данных. Без хорошего инженера данных специалист по данным будет просто ломать голову в поисках подсказок в неформатированных данных.
Давайте посмотрим, что вообще влечет за собой работа инженера данных.
Для лучшего понимания предположим, что вы работаете инженером данных в компании-конкуренте Swiggy (назовем ее Twiggy). У вас есть приложение, которое пользователи могут использовать на любом устройстве и получать доступ к вашим услугам. Они заказывают еду, заказ перенаправляется в соответствующий ресторан, еда забирается оттуда и доходит до вас.
Чтобы синхронизировать этот сервис, вам потребуется:

  • Мобильное приложение для пользователей
  • Мобильное приложение для владельцев ресторанов
  • Надежный сервер для обработки нескольких запросов одновременно.

Как вы, возможно, уже поняли, это приложение будет генерировать ОГРОМНЫЕ объемы данных. Кроме того, вам понадобятся некоторые хранилища данных:

  • База данных, содержащая сведения о пользователях и ресторанах.
  • Журналы доступа к серверу. Они будут включать в себя любой запрос, сделанный на сервер из приложения.
  • Журналы ошибок сервера, содержащие все ошибки на стороне сервера.
  • Журналы событий приложений. Они будут содержать информацию о том, какие действия предпринимали пользователи или владельцы ресторанов в приложении.
  • Журналы ошибок приложений, содержащие ошибки приложений.
  • База данных службы поддержки клиентов. Это будет содержать данные о вашем взаимодействии с вашими клиентами.

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

  • Регулярно собирайте журналы аналитики приложений.
  • Объедините журналы аналитики приложений с записями журнала сервера для соответствующих пользователей.
  • Разработайте API, который возвращает историю событий любого пользователя.

Это очень много работы прямо там!
Чтобы сделать все это, вам нужно создать конвейер, который может эффективно принимать журналы мобильных приложений и журналы сервера в режиме реального времени, анализировать их и связывать с соответствующим пользователем. Кроме того, вам нужно будет хранить проанализированные журналы в базе данных, чтобы API мог легко запрашивать их. Будет много серверов, которые вам нужно будет запустить за балансировщиком нагрузки для анализа входящих журналов.
Большинство проблем, с которыми вы столкнетесь, будут связаны с распределенными системами и надежностью. Если у вас есть миллионы устройств для сбора журналов и динамических запросов (днем вы получаете много записей в журнале, но не так много в полночь), вам необходимо разработать систему, которая может автоматически увеличивать и уменьшать количество серверов. в зависимости от трафика.
Основные шаги к освоению науки о данных

Грубо говоря, операции в универсальном конвейере обработки данных проходят следующие этапы:

  • Проглатывание: сбор необходимых данных.
  • Обработка: обработка данных для получения желаемого результата.
  • Хранение: сохранение результата для более быстрого поиска.
  • Доступ: включение инструмента для доступа к результатам конвейера данных.

Ожидается, что инженер данных будет обладать знаниями в следующих областях.

  • Хранилище данных:
    • РСУБД, такие как MySQL, MS SQL Server и т. д.
    • Базы данных NoSQL, такие как HBase, MongoDB, CouchDB, Cassandra и т. д.
  • Сбор информации:
    • RESTful API
    • Знание моделирования данных и опыт работы с SQL.
  • Преобразование данных:
    • Инструменты ETL, такие как Informatica, Datastage, Redpoint и т. д.
    • Любой язык сценариев, такой как Python, Ruby, Perl и т. д.

Давайте рассмотрим некоторые мифы и заблуждения, связанные с жизнью и работой этих дата-инженеров.

Оглавление

Миф № 1. Инженеры данных извлекают ценность из собранных данных.

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

Миф № 2. Инженеры данных должны сделать все данные чистыми.

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

Миф № 3: Дата-инженеры выгружают данные в готовые инструменты и получают на выходе чистые/работоспособные данные.

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

Миф № 4. Инженеры по обработке данных — это всего лишь инженеры-программисты, работающие с большими данными.

Инженеры-программисты работают над разработкой мобильных/веб-приложений. Их работа связана с множеством разнообразных проблем, и сложность заключается в управлении задачами — думать, общаться и организовывать код. С другой стороны, у дата-инженеров, как правило, меньше проблем, но отдельные проблемы технически намного сложнее. От мировоззрения до набора навыков — для инженера данных все совершенно иначе, чем для инженера-программиста.
Кто такой Data Scientist, Data Analyst и Data Engineer?

Получите сертификат по науке о данных от лучших университетов мира. Изучите программы Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Инженерия данных похожа на классическую роль в ИТ?

«Инженер данных» и «инженер-программист» могут показаться взаимозаменяемыми для тех, кто не связан с компьютерным сектором, поскольку оба в значительной степени полагаются на навыки программирования. Но на самом деле они специалисты в разных областях. Основная цель инженеров-программистов — создавать удобные веб-сайты. Инженеры данных создают системы для хранения, консолидации и извлечения данных, которые затем используются разработчиками программного обеспечения для создания систем и приложений. Инженеры данных также могут создавать и поддерживать конвейер непрерывной интеграции и доставки (CI/CD) для всех данных организации, а также системы контроля версий для обеспечения качества данных во всей инфраструктуре.

Нужно ли иметь высшее образование или ученую степень, чтобы стать Data Engineer?

Чтобы работать дата-инженером, вам не нужна степень, хотя некоторые работодатели могут предпочесть кандидатов со степенью не ниже бакалавра. Никакой академический курс или онлайн-учебная программа не могут полностью подготовить вас к созданию систем данных, которые могут перемещать данные из различных источников, изменять их и сохранять для анализа. Дело в том, что самые успешные инженеры данных многому учатся на работе, работая в реальном мире с реальными клиентами. Но да, для инженера данных важно иметь хорошие навыки работы с определенными инструментами, такими как Amazon Athena, Amazon Redshift, Apache Spark и т. д., и знать передовые методы управления данными.

Как стать успешным дата-инженером?

Для предприятий, управляемых данными, инженерия данных имеет решающее значение, но что именно делают инженеры данных? Вот путь к тому, чтобы стать успешным Data Engineer

1. Станьте опытным в программировании. Если вы хотите стать успешным инженером данных, во-первых, начните с освежения основ программирования. Python и Scala — наиболее часто используемые технологии в этом секторе.
2. Узнайте, как автоматизировать и создавать сценарии. Автоматизация обучения имеет решающее значение для инженеров данных. Поскольку существует множество задач, которые необходимо выполнить с данными, которые могут быть утомительными или могут выполняться на регулярной основе. Некоторыми важными инструментами для автоматизации являются сценарии оболочки и обработка данных в оболочке.
3. Знайте, как использовать свои базы данных: это можно сделать, изучив SQL и моделирование данных.
4. Опытные методы обработки данных. Чтобы освоить методы обработки данных, важно научиться обрабатывать данные в пакетах и ​​потоках перед загрузкой результатов в целевые базы данных.