Data engineer что за профессия

Опубликовано: 16.05.2024

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

У вас может возникнуть вопрос — а где и как получить профессиональные знания?

Рекомендую посмотреть подборку специализированных программ: лучшие курсы по обучению Data Engineering

Жми на заголовки :)

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

Data Engineer — это специалист, который работает с большими объемами информации, применяя разные технологии. Он формирует надёжную инфраструктуру для работы с данными: собирает материал, анализирует, систематизирует и перемещает, занимается хранением. Специалист, также, выполняет следующие должностные обязанности:

  • анализирует данные и применяет алгоритмы машинного обучения;
  • работает с различными источниками данных;
  • создаёт аналитические панели;
  • работает с фреймворками (программная платформа);
  • организовывает и проводит А/B-тестирования;
  • пишет рекомендательные системы;
  • решает бизнес-задачи, связанные с быстрой обработкой информации.

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

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

Что должен знать и уметь Data Engineer

Профессиональные навыки инженера по data включают в себя:

  • способность программировать на Python;
  • знание библиотек NumPy, Pandas;
  • визуализацию данных при помощи matplotlib;
  • знание теории вероятностей и статистики;
  • навык работы с Machine Learning;
  • способность работать с нейронными сетями;
  • способность работать с семантической сегментацией;
  • знание баз данных MongoDB, PostgreSQL, SQLite3.

Уникальное предложение — -50% на ВСЕ курсы Skillbox. Получите современную онлайн-профессию, раскройте свой потенциал.

Активировать скидку →

Личные качества

Data Engineer обладает следующими личностными характеристиками:

  • усидчивость;
  • внимательность;
  • аналитический склад ума;
  • желание постоянно развиваться;
  • трудолюбие;
  • способность быстро переключаться между задачами.

Плюсы и минусы профессии

В работе инженера данных есть свои положительные и негативные стороны.

  • высокая зарплата;
  • востребованность;
  • возможность работать удалённо;
  • постоянное развитие.
  • сидячая работа;
  • профессиональное выгорание.

Зарплата в Москве и по России

Чтобы узнать, какая у data engineer зарплата, ознакомьтесь со скриншотом с сайта trud.com. На графике представлены усреднённые данные по Москве.

По регионам ситуация следующая:

Согласно сайту hh.ru зарплата инженера по данным начинается от 85 тыс. руб. Специалист должен обладать опытом от года. Основные требования к соискателю:

Гонорар от 100 тыс. руб. и выше предлагается data-инженеру с опытом от 1 до 3-х лет. Вакансия выглядит следующим образом:

Как стать Data Engineer

Таким специалистам требуется качественная подготовка, так как они работают с важными для компании данными. Самостоятельно освоить профессию с нуля очень сложно. Нужно читать большое количество литературы, изучать язык программирования, разбираться с библиотеками и фреймворками. Это именно то направление, где не обойтись без отличной теоретической части и опытного наставника. Обучение принесёт нужный результат, если оно будет структурировано и подкреплено практикой.

Есть лёгкий способ быстро стать отличным специалистом.

Можно пройти → data engineering курсы, которые помогут овладеть профессией и начать зарабатывать ещё в процессе обучения.

Преимущества таких программ:

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

Если вас заинтересовала профессия — ставьте плюс в комментариях, расскажем, как в ней легко стартануть 🙂

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

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

Кто такой 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 требования к кандидатам выше:

  • знание Python, Java или Scala;
  • опыт работы с технологиями обработки больших данных: Hadoop, Spark, Kafka;
  • знание алгоритмов и структур данных;
  • понимание основ распределённых систем;
  • большим плюсом будет опыт работы с инструментами визуализации данных, такими как Tableau или ElasticSearch.

Основной упор в технологиях Big Data сейчас делают на их обработку в условиях высокой нагрузки. Поэтому компании повысили требования к отказоустойчивости системы.

Кто такой Data Engineer и как им стать

Вероника лобанова

Координатор факультета « Аналитика и Data Science » Нетологии

Профессия

Дата-инженер с нуля до PRO 🚀

Узнать больше

  • Освойте профессию с высоким окладом на низкоконкурентном рынке
  • Научитесь автоматизировать работу с данными, настраивать мониторинги, создавать конвейеры обработки и схемы хранения данных
  • Получите знания, равноценные опыту 2‒3 лет самостоятельного изучения инжиниринга данных

Инженеры данных и дата-сайентисты: в чём отличия

Кто такой Data Engineer и как им стать

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

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

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

Что нужно знать инженеру данных

Кто такой Data Engineer и как им стать

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

Изучите алгоритмы и структуры данных

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

Проверьте себя. Понимаете ли вы, о чём идёт речь ниже?

Обычные B-tree SQL-базы данных основаны на структуре B-деревьев, а также на современных распределённых репозиториях LSM-деревьев и других модификациях хеш-таблиц.

Материалы для обучения

  1. Начните с бесплатных курсов от Udemy и Coursera: Easy to Advanced Data Structures, Algorithms, Part I, Algorithms, Part II.
  2. Когда освоите базовые понятия, смотрите ролики Университета Карнеги-Меллона, например, Intro to Database Systems и Advanced Database Systems.
  3. Когда нужно будет освежить знания, прочтите справочник Томаса Кормена «Алгоритмы. Построение и анализ».
  4. Практикуйтесь на Leetcode.

Освойте SQL

Чтобы извлечь данные из базы, нужно «говорить» с ними на одном языке. Этот язык — SQL. Сейчас можно услышать, что язык скоро никто не будет использовать. Но практика показывает другое: SQL востребован во многих проектах, его указывают в требованиях к кандидату в вакансиях. Современные хранилища больших данных вроде Amazon Redshift, HP Vertica, Oracle, SQL Server поддерживают SQL. Язык развивается, для анализа большого массива данных из распределённых систем вроде HDFS изобрели движки SQL-запросов: Apache Hive, Impala и другие.

Кто такой Data Engineer в Big Data: профессиональные компетенции инженера данных

Автор Анна Вичугова Категория Статьи, Цифровая трансформация
Еще материалы по теме

3 технологии высокой доступности Greenplum для администратора Big Data кластера

3 технологии высокой доступности Greenplum для администратора Big Data кластера

Под капотом Apache Kafka: zero copy и быстрые IO-операции с диском

Под капотом Apache Kafka: zero copy и быстрые IO-операции с…

Аналитика больших данных со Apache Spark SQL из внешних СУБД: про JDBC-драйверы

Аналитика больших данных со Apache Spark SQL из внешних СУБД:…

АКЦИИ

Напиши отзыв и выиграй

Новое на сайте
  • 3 технологии высокой доступности Greenplum для администратора Big Data кластера
  • Под капотом Apache Kafka: zero copy и быстрые IO-операции с диском
  • 3 оператора Apache Airflow для контейнерных конвейеров данных
  • Аналитика больших данных со Apache Spark SQL из внешних СУБД: про JDBC-драйверы
  • Как построить OLAP-конвейер в реальном времени на Greenplum и Apache NiFi: разбор интеграционного коннектора для приема больших данных
Отзывы на Google

BigDataSchool

Прошел Курс Администрирование кластера Hadoop. Подача материала хорошая, размеренная. Преподаватель отвечает на все вопросы, и пытается как можно прозрачней приподнести материал. read more

Обучался на программе HADM. Подача материала доступная. Порадовало соотношение теории и практики 50/50. Отзывчивый преподаватель. Однозначно рекомендую. read more

Заканчиваю прохождения курса "ADH: Администрирование кластера Arenadata Hadoop". Хочу сказать, что выстроен грамотный план обучения, где отслеживается отличное соотношение практики и теории. Преподаватель, Комисаренко Николай, обладает отличным чувством юмора, что позволило не скучать на серьезных темах, и обладает отличным навыком объяснять сложные вещи простыми словами. На курс приходил с большим числом вопросов, на все из которых получил грамотные ответы, после чего все разложилось по полочкам. read more

В декабре 2020 прошел курс "Администрирование кластера Kafka". Курс проводился удаленно. В части организации обучения придраться не к чему. Необходимую информацию прислали заранее, лабораторный стенд и портал обучения работали стабильно. Немного разочаровали лабораторные работы. На месте BigDataSchool я бы их переделал. В документах с лабами нужно сделать нормальное форматирование и нумерацию пунктов. Все пункты, необходимые для выполнения, нужно сделать в виде текста. В лабах много работ по созданию «обвязки» kafka (создание самоподписных сертификатов, развертывание MIT и т.п), которые можно сделать заранее. Это позволит студентам уделять больше времени изучению самой kafka. BigDataSchool идет навстречу и позволяет пользоваться лабораторным стендом гораздо дольше установленных часов обучения. Это очень к стати, если в течении дня Вы вынуждены отвлекаться от обучения. В целом, курс дает хорошую базу по kafka. Преподаватель хорошо подает материал, делает акценты в нужных местах, подробно отвечает на вопросы. read more

С 30 ноября по 4 декабря прошел курс "Администрирование кластера Hadoop". Учитывая, что я обладал довольно поверхностной информацией в данной теме (я CIO) - ушел с курсов просветленным. Многое стало понятным, в процессе обучения наложил знания на существующую инфраструктуру компании, в которой работаю. Рекомендую коллегам руководителям в ИТ - прокачаться на данном курсе, вы поймете куда двигаться в ближайшие 2-3 года. Админам, работающим или стремящимся в BigData- обязательно! Рекомендация - настойчиво, для тех кто "думает, что знает": перед курсом уделите время работе с командной строкой Linux! Total recall - обязательное условие. Много практической работы, и если есть затык в Linux - будете безнадежно отставать при выполнении лабораторных работ. read more

В октябре прошел курс Анализ данных с Apache Spark, это был второй раз, когда я обучался в этом месте. В целом, все хорошо, думаю что не последний. Не могу не подчеркнуть профессионализм преподавателя Королева Михаила, отвечал на поставленные вопросы, делился своим опытом. В общем, рекомендую! read more

Прошел тут курс "NIFI: Кластер Apache NiFi", вёл Комисаренко Николай. Живое и понятное обучение. Преподаватель отвечал на все вопросы от самых глупых, до самых умных и это было приятно. Так же порадовало, что преподаватель не идёт по заранее проложенным рельсам, а проходит весь путь вместе с вами, стараясь привнести, что-то новое. read more

Спасибо за обучение!

Очень крутое место, много практики, понятное объяснение заданной темы. Еще вернусь :) read more

Обучался на курсе HADM администрирование кластера Arenadata Hadoop. Интересный курс, хорошая подача. read more

Обучался на курсе по администрированию Apache Kafka. Хорошая подача материала, интересные практические задачи. Возникающие вопросы доходчиво и ясно объясняют. Остался очень доволен. read more

Был на курсе "Администрирование кластера Hadoop". Отличная подача материала. Очень много практики и технических подробностей. Подробный обзор стека технологий, платформы и инструментов. Рекомендую! read more

Учился на курсе Администрирование Hadoop. Курс вёл Николай Комиссаренко. Отлично подготовленная, продуманная, системная программа курса. Практические занятия организованы так, что у студентов есть возможность познакомиться с реальными особенностями изучаемого продукта. Отключил голову и прощёлкал лабы по книжке - здесь не работает. Преподаватель легко и развёрнуто отвечает на возникающие вопросы не только по теме предмета, но и по смежным. read more

Прошёл курс по администрированию Apache Kafka. Очень понравилась как подача материала, так и структура курса. Только вот времени маловато оказалось. не всё успел доделать, но это уже не к курсу претензии :). Практики было довольно много, и это хорошо read more

Прошёл курс "Hadoop для инженеров данных" у Николая Комиссаренко. Информация очень актуальна и полезна, заставляет задуматься о текущих методах работы с большими данными в нашей компании и, возможно, что-то поменять. Занятия с большим количеством практики, поэтому материал хорошо усваивается. Отдельное спасибо Николаю за то, что некоторые вещи объяснял простым языком, понятным даже для "чайников" в области Hadoop. read more

I did not find any disadvantages in the course. Pluses: + A lot of practice (50% of the time). + The teacher can explain difficult topics easy way. + Announced topics were considered. Besides additional materials were studied. read more

Посетил курс администрирование Hadoop. На курсе устанавливали кластер с нуля на виртуалках в облаке Amazon. Настраивали Kerberos, тестировали выполнение задач на кластере, управление ресурсами кластера. Т.к. кластер развернут в облаке, после завершения занятий можно самостоятельно работать с кластером из дома. Лекции вел Николай Комиссаренко, после обучения предоставил все материалы. На занятиях отвечал на дополнительные вопросы, рассмотрели как решить пару живых задач от студентов. Хороший курс для начала изучения BigData. Update Дополнительно прошел обучения по Airflow и NiFi. Курсы двух дневные упор на занятиях делался на использовании продуктов, администрированию уделялось меньше времени. Т.к. курсы короткие, то перед занятиями желательно почитать обзорные статьи по продуктам, чтобы не терять время на базовое погружение и задавать более предметные вопросы. Перед началом занятий желательно связаться с школой и запросить что больше интересуется на обучении. Может быть предложить свои кейсы, чтобы на лабораторных отработать не только общий функционал. read more

Был на основах хадупа, все материалы описаны доступным языком. В частности хочу отметить преподавателя Николая Комисаренко, как очень квалифицированного преподавателя и специалиста. read more

Отличные курсы по "Администрированию Hadoop" и отличная организация проведения занятий, все по делу и понятно. Очень понравилось, знания получены основательные. Материал подаётся основательно. Постараюсь ещё попасть на другие курсы. read more

Курс по Isilon у Николая Комиссаренко мне тоже понравился. Грамотный и отзывчивый. Возникали вопросы по курсу он отвечал на все вопросы. Спасибо. Успехов ему read more

Посетил курс администрирование Hadoop. На курсе устанавливали кластер с нуля на виртуалках в облаке Amazon. Настраивали Kerberos, тестировали выполнение задач на кластере, управление ресурсами кластера. Т.к. кластер развернут в облаке, после завершения занятий можно самостоятельно работать с кластером из дома. Лекции вел Николай Комиссаренко, после обучения предоставил все материалы. На занятиях отвечал на дополнительные вопросы, рассмотрели как решить пару живых задач от студентов. Хороший курс для начала изучения BigData. read more

Эффективный практический курс. Прошел курс Администрирование Hadoop в октябре 2018. Хорошо наполненный материал, оптимальная длительность курса и все делалось своими руками. Местами было непросто, но преодолимо. Оправдал все ожидания, после курса появилось целостное понимание создания и работы кластера. Николай, большое спасибо read more

Прошёл курс по администрированию Hadoop Cloudera. Отличная "живая" подача материала на "простом" языке. Как плюс работа с кластером построена на платформе AWS. На курсах не скучно, рекомендую! read more

Я узнал много нового посетив курс уважаемого Николая Комиссаренко по айзелону. Очень грамотный специалист обучение было очень полезным и грамотным. Спасибо вам большое read more

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

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

Что такое Data Engineering?

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

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

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

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

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

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

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

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

  • Отличное знание SQL и Python.
  • Опыт работы с облачными платформами, в частности Amazon Web Services.
  • Предпочтительно знание Java/Scala.
  • Хорошее понимание баз данных SQL и NoSQL (моделирование данных, хранение данных).

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

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

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

  • Опыт работы с большими данными: Hadoop, Spark, Kafka.
  • Знание алгоритмов и структур данных.
  • Понимание основ распределенных систем.
  • Опыт работы с инструментами визуализации данных, такими как Tableau или ElasticSearch, будет большим плюсом.

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

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

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

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

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

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

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

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

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

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

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

Прежде всего, Data Engineering относится к информатике. Конкретне — вы должны понимать эффективные алгоритмы и структуры данных. Во-вторых, поскольку дата-инженеры работают с данными, необходимо понимание принципов работы баз данных и структур, лежащих в их основе.

Например, обычные B-tree SQL базы данных основаны на структуре данных B-Tree, а также, в современных распределенных репозиториях, LSM-Tree и других модификациях хеш-таблиц.

* Эти шаги основаны на замечательной статье Адиля Хаштамова . Итак, если вы знаете русский язык, поддержите этого автора и прочитайте его пост .

1. Алгоритмы и структуры данных

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

  • От простых к сложным: Структуры Данных(Udemy)
  • Алгоритмы, Часть I (Coursera)
  • Алгоритмы, Часть II (Coursera)

Плюс не забывайте о классической работе над алгоритмами Томаса Кормена — Введение в алгоритмы . Это идеальный справочник, когда вам нужно освежить свою память.

  • Чтобы улучшить свои навыки, используйте Leetcode .

Вы также можете погрузиться в мир баз данных с помощью потрясающих видеороликов Университета Карнеги-Меллона на Youtube:

  • Введение в системы баз данных .
  • Продвинутые системы баз данных .

2. Изучение SQL

Вся наша жизнь — это данные. И для того, чтобы извлечь эти данные из базы данных, вам нужно «говорить» с ними на одном языке.

SQL (Structured Query Language — язык структурированных запросов) является языком общения в области данных. Независимо от того, что кто-то говорит, SQL жил, жив и будет жить еще очень долго.

Если вы долгое время находились в разработке, вы, вероятно, заметили, что слухи о скорой смерти SQL появляются периодически. Язык был разработан в начале 70-х годов и до сих пор пользуется огромной популярностью среди аналитиков, разработчиков и просто энтузиастов.
Без знания SQL в инженерии данных делать нечего, так как вам неизбежно придется создавать запросы для извлечения данных. Все современные хранилища больших данных поддерживают SQL:

  • Amazon Redshift
  • HP Vertica
  • Oracle
  • SQL Server

… и множество других.

Для анализа большого слоя данных, хранящихся в распределенных системах, таких как HDFS, были изобретены механизмы SQL: Apache Hive, Impala и т. д. Видите, он не собирается никуда уходить.

Как выучить SQL? Просто делай это на практике.

Для этого я бы порекомендовал ознакомиться с отличным учебником, который, кстати, бесплатный, от Mode Analytics .

  • Средний уровень SQL
  • Объединение данных в SQL

Отличительной особенностью этих курсов является наличие интерактивной среды, в которой вы можете писать и выполнять SQL-запросы прямо в браузере. Ресурс Modern SQL не будет лишним. И вы можете применить эти знания в задачах Leetcode в разделе Базы данных.

3. Программирование на Python и Java/Scala

Почему стоит изучать язык программирования Python, я уже писал в статье Python vs R. Выбор лучшего инструмента для AI, ML и Data Science . Что касается Java и Scala, большинство инструментов для хранения и обработки огромных объемов данных написаны на этих языках. Например:

  • Apache Kafka (Scala)
  • Hadoop, HDFS (Java)
  • Apache Spark (Scala)
  • Apache Cassandra (Java)
  • HBase (Java)
  • Apache Hive (Java)

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

Чтобы погрузиться в язык Scala, вы можете прочитать Программирование в Scala от автора языка. Также компания Twitter опубликовала хорошее вводное руководство — Scala School .

Что касается Python, я считаю Fluent Python лучшей книгой среднего уровня.

4. Инструменты для работы с большими данными

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

  • Apache Spark
  • Apache Kafka
  • Apache Hadoop (HDFS, HBase, Hive)
  • Apache Cassandra

Больше информации о построении больших блоков данных вы можете найти в этой удивительной интерактивной среде . Самые популярные инструменты — Spark и Kafka. Их определенно стоит изучить, желательно понять, как они работают изнутри. Jay Kreps (соавтор Kafka) в 2013 году опубликовал монументальную работу The Log: что должен знать каждый разработчик программного обеспечения об абстракции объединения данных в реальном времени , кстати, основные идеи из этого талмуда были использованы для создания Apache Kafka.

data engineer

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

Data Scientist vs. Data Engineer

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

Как это работает в реальности?

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

Или предположим, что вы дата-инженер в компании Rebu, молодом конкуренте Uber. Ваши пользователи заказывают такси через приложение. Итак, они отмечают пункт назначения, одновременно, в приложении у водителя отображается маршрут, затем он забирает пассажиров и высаживает их в пункте назначения. Далее пассажиры оплачивают поездку и имеют возможность поставить оценку водителю. Чтобы эта система работала, вам понадобится:

  1. Мобильное приложение для пользователей
  2. Мобильное приложение для водителей
  3. Сервер, который будет передавать запросы пользователей водителя и управлять другими данными, например, обновлениями информации о платежах

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

  1. Регулярно собирать данные приложения с устройств пользователей
  2. Собрать данные из приложений вместе с данными с сервера, которые относятся к пользователю
  3. Создать точку API, которая отразит историю событий любого пользователя

Для этого вам необходимо создать пайплайн, который сможет “проглотить” логи приложений и логи сервера в реальном времени, проанализировать их и соотнести с конкретным пользователем. Затем вам необходимо будет хранить проанализированные логи в базе данных так, чтобы по их можно было без труда запросить по API.

Исходя из этих примеров, Data Engineer фокусируется на построении инфраструктуры и архитектуры генерации данных, а Data Scientist сосредотачивает свои усилия на взаимодействии с инфраструктурой данных.

К несчастью для обоих, компании часто ограничиваются должностью Data Scientist и не создают отдельную позицию Data Engineer. Такой подход грозит чрезмерной загруженностью первого, когда до 80% времени он тратит на добычу и обработку данных, закапываясь в массивах информации.

Что именно делает Data Engineer и какие инструменты он использует?

Итак, инженер по данным сможет:

Data Science с нуля

Освойте самую востребованную профессию 2021 года! Только реальные знание и навыки, поддержка менторов и помощь в трудоустройстве. Дополнительная скидка 5% по промокоду BLOG.

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

Если вы хотите развиваться в области Data Engineering, то обратите внимание на годовой курс для разработчиков и администраторов, позволяющий полностью освоить новое направление Data Engineering, от SkillFactory. Курс рассчитан на 12 месяцев, а чтобы его освоить, нужно обладать знаниями SQL и Python и быть знакомым с Linux. Пройти курс получится из любой точки мира, так как он пройдет в режиме онлайн.

Читайте также: