Кто такой data engineer и что он делает

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

Кто такой data engineer и что он делает. Смотреть фото Кто такой data engineer и что он делает. Смотреть картинку Кто такой data engineer и что он делает. Картинка про Кто такой data engineer и что он делает. Фото Кто такой 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 Engineer и как им стать

Сделали адаптированный перевод статьи Oleksii Kharkovyna о том, кто такие инженеры данных и что нужно знать новичкам, чтобы освоить профессию.

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

Кто такой data engineer и что он делает. Смотреть фото Кто такой data engineer и что он делает. Смотреть картинку Кто такой data engineer и что он делает. Картинка про Кто такой data engineer и что он делает. Фото Кто такой data engineer и что он делает

Что такое инженерия данных

«Учёный может открыть новую звезду, но не может создать её. Для этого ему пришлось бы обратиться к инженеру», — Гордон Линдсей Глегг

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

Кто такой data engineer и что он делает. Смотреть фото Кто такой data engineer и что он делает. Смотреть картинку Кто такой data engineer и что он делает. Картинка про Кто такой data engineer и что он делает. Фото Кто такой data engineer и что он делает

Что делает инженер данных

С появлением 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 сейчас делают на их обработку в условиях высокой нагрузки. Поэтому компании повысили требования к отказоустойчивости системы.

Источник

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

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

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

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

Кто такой data engineer и что он делает. Смотреть фото Кто такой data engineer и что он делает. Смотреть картинку Кто такой data engineer и что он делает. Картинка про Кто такой data engineer и что он делает. Фото Кто такой data engineer и что он делает

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

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

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

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

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

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

Кто такой data engineer и что он делает. Смотреть фото Кто такой data engineer и что он делает. Смотреть картинку Кто такой data engineer и что он делает. Картинка про Кто такой data engineer и что он делает. Фото Кто такой data engineer и что он делает

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

А дальше.

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

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

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

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

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

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

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

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

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

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

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

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

Кто такой data engineer и что он делает. Смотреть фото Кто такой data engineer и что он делает. Смотреть картинку Кто такой data engineer и что он делает. Картинка про Кто такой data engineer и что он делает. Фото Кто такой data engineer и что он делает

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

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

В итоге

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

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

Источник

📊 Кто такой дата-инженер, чем он занимается и что должен знать?

Кто такой data engineer и что он делает. Смотреть фото Кто такой data engineer и что он делает. Смотреть картинку Кто такой data engineer и что он делает. Картинка про Кто такой data engineer и что он делает. Фото Кто такой data engineer и что он делает

Причём здесь дата и почему ею должен заниматься целый инженер?

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

Информация может быть разной: от статистических данных потребителей зубной пасты до списка переменных и их значений в условиях некой формулы. Как раз благодаря возможностям сбора, накапливания и последующей обработки данных получилось создать все концепции и технологии “умных” городов, “интеллектуальных” алгоритмов рекомендаций и прочие новомодные взаимодействия с информацией.

Накопленная информация сама по себе ничего не даёт: для получения выгоды её нужно обработать. Тут в дело вступает дата-инженер.

Чем дата-инженер отличается от аналитика?

Кто такой data engineer и что он делает. Смотреть фото Кто такой data engineer и что он делает. Смотреть картинку Кто такой data engineer и что он делает. Картинка про Кто такой data engineer и что он делает. Фото Кто такой data engineer и что он делает

Термин дата-сайентист (от англ. data scientist) у всех на слуху и обозначает коллегу дата-инженера. С учётом современных трендов на объединение или работу в команде, штатные единицы сайентиста (ученого, аналитика) и инженера представлены либо в одном лице, либо эти специалисты тесно сотрудничают друг с другом.

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

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

Что нужно знать дата-инженеру?

Для первичной обработки информации и организации её хранения инженеру понадобятся знания бекенда и в области разработки ПО. В качестве основного и самого популярного хранилища выступают СУБД (SQL и noSQL), поэтому в начале пути можно сфокусироваться на них.

Базовые требования

Кто такой data engineer и что он делает. Смотреть фото Кто такой data engineer и что он делает. Смотреть картинку Кто такой data engineer и что он делает. Картинка про Кто такой data engineer и что он делает. Фото Кто такой data engineer и что он делает

Дата-инженер работает с данными, а значит ему нужно знать о данных всё:

Заключение

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

Если вы только собираетесь стать дата-инженером, стоит заранее подготовиться к тяжёлой, а иногда и нудной учёбе. Обратите внимание курс факультета Data Engineering российской образовательной онлайн-платформы GeekBrains. Учат здесь с нуля, постепенно продвигаясь по всем важным нюансам этой непростой специализации. Занятия с экспертами-практиками из ведущих технологических компаний России позволят сэкономить время, а успешно окончив курс, вы получите диплом о профессиональной переподготовке, электронный сертификат и помощь в трудоустройстве.

Источник

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

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

Кто такой data engineer и что он делает. Смотреть фото Кто такой data engineer и что он делает. Смотреть картинку Кто такой data engineer и что он делает. Картинка про Кто такой data engineer и что он делает. Фото Кто такой data engineer и что он делает

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

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

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

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

Что такое Data Engineering?

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

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

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

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

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

Кто такой data engineer и что он делает. Смотреть фото Кто такой data engineer и что он делает. Смотреть картинку Кто такой data engineer и что он делает. Картинка про Кто такой data engineer и что он делает. Фото Кто такой data engineer и что он делает

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Кто такой data engineer и что он делает. Смотреть фото Кто такой data engineer и что он делает. Смотреть картинку Кто такой data engineer и что он делает. Картинка про Кто такой data engineer и что он делает. Фото Кто такой data engineer и что он делает

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

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

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

Прежде всего, 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. Инструменты для работы с большими данными

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

Кто такой data engineer и что он делает. Смотреть фото Кто такой data engineer и что он делает. Смотреть картинку Кто такой data engineer и что он делает. Картинка про Кто такой data engineer и что он делает. Фото Кто такой data engineer и что он делает

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

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

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

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

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

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

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

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

Кто такой data engineer и что он делает. Смотреть фото Кто такой data engineer и что он делает. Смотреть картинку Кто такой data engineer и что он делает. Картинка про Кто такой data engineer и что он делает. Фото Кто такой data engineer и что он делает

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

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

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

Кто такой data engineer и что он делает. Смотреть фото Кто такой data engineer и что он делает. Смотреть картинку Кто такой data engineer и что он делает. Картинка про Кто такой data engineer и что он делает. Фото Кто такой data engineer и что он делает

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

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

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

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

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

Кто такой data engineer и что он делает. Смотреть фото Кто такой data engineer и что он делает. Смотреть картинку Кто такой data engineer и что он делает. Картинка про Кто такой data engineer и что он делает. Фото Кто такой data engineer и что он делает

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

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

Источник

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

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