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. Опытные методы обработки данных. Чтобы освоить методы обработки данных, важно научиться обрабатывать данные в пакетах и потоках перед загрузкой результатов в целевые базы данных.