Кто такой Data Engineer и как им стать
Сделали адаптированный перевод статьи Oleksii Kharkovyna о том, кто такие инженеры данных и что нужно знать новичкам, чтобы освоить профессию.
Инженер данных — смесь аналитика данных и дата-сайентиста. Он отвечает за извлечение, преобразование, загрузку данных и их обработку. Профессия востребована в первую очередь благодаря высоким зарплатам и спросу среди работодателей. Дальше расскажу, какие задачи выполняют инженеры данных, чем отличаются от дата-сайентистов и что нужно знать тем, кто хочет освоить специальность.
Что такое инженерия данных
«Учёный может открыть новую звезду, но не может создать её. Для этого ему пришлось бы обратиться к инженеру», — Гордон Линдсей Глегг
Из названия специальности следует, что она связана с данными: их доставкой, хранением и обработкой. Главная задача инженера — подготовить надёжную инфраструктуру для данных. В ИИ-иерархии потребностей инженерия данных занимает первые две-три ступени: сбор, перемещение и хранение, подготовка данных.
Что делает инженер данных
С появлением Big Data сфера ответственности специалистов по обработке данных изменилась. Если раньше инженеры писали большие SQL-запросы и обрабатывали данные с помощью таких инструментов, как Informatica ETL, Pentaho ETL, Talend, то теперь от них ждут большего. Специалисту нужно отлично знать SQL и Python, желательно — Java/Scala, иметь опыт работы с облачными платформами, в частности Amazon Web Services.
И это только самое необходимое. Логично предположить, что инженеры должны разбираться в разработке программного обеспечения и серверной разработке. В компании, которая генерирует большой объем данных из разных источников, задача инженера — организовать сбор информации, её обработку и хранение.
Инструменты могут отличаться — всё зависит от объема данных, их скорости поступления и неоднородности. Многие компании вообще не работают с большими данными, поэтому в качестве централизованного хранилища используют базу SQL (PostgreSQL, MySQL) с небольшим количеством скриптов, которые направляют данные в репозиторий.
У IT-гигантов вроде Google, Amazon, Facebook или Dropbox требования к кандидатам выше:
Основной упор в технологиях Big Data сейчас делают на их обработку в условиях высокой нагрузки. Поэтому компании повысили требования к отказоустойчивости системы.
Что такое Big data engineering, и как развиваться в этой сфере
Как отдельная профессия Big Data Engineering появилась довольно недавно. И даже крупные компании очень часто путают, чем занимается этот специалист, каковы его компетенции и зачем он вообще в организации.
Поэтому в сегодняшней статье, специально к старту нового потока курса по Data Engineering, мы разберёмся, кто такой Big Data Engineer, чем он занимается и чем отличается от Data Analyst и Data Scientist. Этот гайд подойдёт людям, которые хотят работать с большими данными и присматриваются к профессии в целом. А также тем, кто просто хочет понять, чем занимаются инженеры данных.
Кто такой Big data engineer
Задачи, которые выполняет инженер больших данных, входят в цикл разработки машинного обучения. Его работа тесно связана с аналитикой данных и data science.
Главная задача Data engineer — построить систему хранения данных, очистить и отформатировать их, а также настроить процесс обновления и приёма данных для дальнейшей работы с ними. Помимо этого, инженер данных занимается непосредственным созданием моделей обработки информации и машинного обучения.
Инженер данных востребован в самых разных сферах: e-commerce, финансах, туризме, строительстве — в любом бизнесе, где есть поток разнообразных данных и потребность их анализировать.
К примеру, при разработке «умного» дома. Создание подобной системы требует считывания и обработки данных с IoT-сенсоров в режиме реального времени. Необходимо, чтобы данные обрабатывались с максимальной быстротой и минимальной задержкой. И даже при падении системы данные должны продолжать накапливаться, а затем и обрабатываться. Разработка системы, которая удовлетворяет этим требованиям, и есть задача инженера данных.
С технической стороны, наиболее частыми задачами инженера данных можно считать:
Разработка процессов конвейерной обработки данных. Это одна из основных задач BDE в любом проекте. Именно создание структуры процессов обработки и их реализация в контексте конкретной задачи. Эти процессы позволяют с максимальной эффективностью осуществлять ETL (extract, transform, load) — изъятие данных, их трансформирование и загрузку в другую систему для последующей обработки. В статичных и потоковых данных эти процессы значительно различаются. Для этого чаще всего используются фреймворки Kafka, Apache Spark, Storm, Flink, а также облачные сервисы Google Cloud и Azure.
Хранение данных. Разработка механизма хранения и доступа к данным — еще одна частая задача дата-инженеров. Нужно подобрать наиболее соответствующий тип баз данных — реляционные или нереляционные, а затем настроить сами процессы.
Обработка данных. Процессы структурирования, изменения типа, очищения данных и поиска аномалий во всех этих алгоритмах. Предварительная обработка может быть частью либо системы машинного обучения, либо системы конвейерной обработки данных.
Разработка инфраструктуры данных. Дата-инженер принимает участие в развёртывании и настройке существующих решений, определении необходимых ресурсных мощностей для программ и систем, построении систем сбора метрик и логов.
В иерархии работы над данными инженер отвечает за три нижние ступеньки: сбор, обработку и трансформацию данных.
Что должен знать Data Engineer
Структуры и алгоритмы данных;
Особенности хранения информации в SQL и NoSQL базах данных. Наиболее распространённые: MySQL, PostgreSQL, MongoDB, Oracle, HP Vertica, Amazon Redshift;
ETL-системы (BM WebSphere DataStage; Informatica PowerCenter; Oracle Data Integrator; SAP Data Services; SAS Data Integration Server);
Облачные сервисы для больших данных Amazon Web Services, Google Cloud Platform, Microsoft Azure;
Кластеры больших данных на базе Apache и SQL-движки для анализа данных;
Желательно знать языки программирования (Python, Scala, Java).
Стек умений и навыков инженера больших данных частично пересекается с дата-сайентистом, но в проектах они, скорее, дополняют друг друга.
Data Engineer сильнее в программировании, чем дата-сайентист. А тот, в свою очередь, сильнее в статистике. Сайентист способен разработать модель-прототип обработки данных, а инженер — качественно воплотить её в реальность и превратить код в продукт, который затем будет решать конкретные задачи.
Инженеру не нужны знания в Business Intelligence, а вот опыт разработки программного обеспечения и администрирования кластеров придётся как раз кстати.
Но, несмотря на то что Data Engineer и Data Scientist должны работать в команде, у них бывают конфликты. Ведь сайентист — это по сути потребитель данных, которые предоставляет инженер. И грамотно налаженная коммуникация между ними — залог успешности проекта в целом.
Плюсы и минусы профессии инженера больших данных
Плюсы:
Отрасль в целом и специальность в частности ещё очень молоды. Особенно в России и странах СНГ. Востребованность специалистов по BDE стабильно растёт, появляется всё больше проектов, для которых нужен именно инженер больших данных. На hh.ru, по состоянию на начало апреля, имеется 768 вакансий.
Пока что конкуренция на позиции Big Data Engineer в разы ниже, чем у Data Scientist. Для специалистов с опытом в разработке сейчас наиболее благоприятное время, чтобы перейти в специальность. Для изучения профессии с нуля или почти с нуля — тоже вполне хорошо (при должном старании). Тенденция роста рынка в целом будет продолжаться ближайшие несколько лет, и всё это время будет дефицит хороших спецов.
Задачи довольно разнообразные — рутина здесь есть, но её довольно немного. В большинстве случаев придётся проявлять изобретательность и применять творческий подход. Любителям экспериментировать тут настоящее раздолье.
Минусы
Большое многообразие инструментов и фреймворков. Действительно очень большое — и при подготовке к выполнению задачи приходится серьёзно анализировать преимущества и недостатки в каждом конкретном случае. А для этого нужно довольно глубоко знать возможности каждого из них. Да-да, именно каждого, а не одного или нескольких.
Уже сейчас есть целых шесть платформ, которые распространены в большинстве проектов.
Spark — популярный инструмент с богатой экосистемой и либами, для распределенных вычислений, который может использоваться для пакетных и потоковых приложений.
Flink — альтернатива Spark с унифицированным подходом к потоковым/пакетным вычислениям, получила широкую известность в сообществе разработчиков данных.
Kafka — сейчас уже полноценная потоковая платформа, способная выполнять аналитику в реальном времени и обрабатывать данные с высокой пропускной способностью. ElasticSearch — распределенный поисковый движок, построенный на основе Apache Lucene.
PostgreSQL — популярная бд с открытым исходным кодом.
Redshift — аналитическое решение для баз/хранилищ данных от AWS.
Без бэкграунда в разработке ворваться в BD Engineering сложно. Подобные кейсы есть, но основу профессии составляют спецы с опытом разработки от 1–2 лет. Да и уверенное владение Python или Scala уже на старте — это мастхэв.
Работа такого инженера во многом невидима. Его решения лежат в основе работы других специалистов, но при этом не направлены прямо на потребителя. Их потребитель — это Data Scientist и Data Analyst, из-за чего бывает, что инженера недооценивают. А уж изменить реальное и объективное влияние на конечный продукт и вовсе практически невозможно. Но это вполне компенсируется высокой зарплатой.
Как стать Data Engineer и куда расти
Профессия дата-инженера довольно требовательна к бэкграунду. Костяк профессии составляют разработчики на Python и Scala, которые решили уйти в Big Data. В русскоговорящих странах, к примеру, процент использования этих языков в работе с большими данными примерно 50/50. Если знаете Java — тоже хорошо.
Хорошее знание SQL тоже важно. Поэтому в Data Engineer часто попадают специалисты, которые уже ранее работали с данными: Data Analyst, Business Analyst, Data Scientist. Дата-сайентисту с опытом от 1–2 лет будет проще всего войти в специальность.
Фреймворками можно овладевать в процессе работы, но хотя бы несколько важно знать на хорошем уровне уже в самом начале.
Дальнейшее развитие для специалистов Big Data Engineers тоже довольно разнообразное. Можно уйти в смежные Data Science или Data Analytics, в архитектуру данных, Devops-специальности. Можно также уйти в чистую разработку на Python или Scala, но так делает довольно малый процент спецов.
Перспективы у профессии просто колоссальные. Согласно данным Dice Tech Job Report 2020, Data Engineering показывает невероятные темпы роста — в 2019 году рынок профессии увеличился на 50 %. Для сравнения: стандартным ростом считается 3–5 %.
В 2020 году темпы замедлились, но всё равно они многократно опережают другие отрасли. Спрос на специальность вырос ещё на 24,8 %. И подобные темпы сохранятся еще на протяжении минимум пяти лет.
Так что сейчас как раз просто шикарный момент, чтобы войти в профессию Data Engineering с нашим курсом Data Engineering и стать востребованным специалистом в любом серьёзном Data Science проекте. Пока рынок растёт настолько быстро, то возможность найти хорошую работу, есть даже у новичков.
Узнайте, как прокачаться и в других областях работы с данными или освоить их с нуля:
Data Engineer и Data Scientist: что умеют и сколько зарабатывают
Вместе с Еленой Герасимовой, руководителем факультета «Data Science и аналитика» в Нетологии, продолжаем разбираться, как взаимодействуют между собой и чем различаются Data Scientist и Data Engineer.
В этом материале поговорим о том, какими знаниями и навыками должны обладать специалисты, какое образование ценится работодателями, как проходят собеседования, а также сколько зарабатывают дата-инженеры и дата-сайентисты.
Что должны знать сайентисты и инженеры
Профильное образование для обоих специалистов — Computer Science.
Любой специалист по данным — дата-сайентист или аналитик — должен уметь доказывать корректность своих выводов. Для этого не обойтись без знания статистики и связанной со статистикой базовой математики.
Машинное обучение и инструменты анализа данных незаменимы в современном мире. Если привычные инструменты недоступны, нужно иметь навыки быстрого изучения новых инструментов, создания простых скриптов для автоматизации задач.
Важно отметить, что специалист по работе с данными должен эффективно донести результаты анализа. В этом ему поможет визуализация данных или результатов проведённых исследований и проверки гипотез. Специалисты должны уметь создавать диаграммы и графики, использовать инструменты визуализации, понимать и разъяснять данные из дашбордов.
Для инженера данных на первый план выходят три направления.
Алгоритмы и структуры данных. Важно набить руку в написании кода и использовании основных структур и алгоритмов:
Сколько получают инженеры и сайентисты
Доход инженеров по обработке данных
В России в начале карьеры зарплата обычно не меньше 50 тыс. рублей в регионах и 80 тыс. в Москве. На этом этапе не требуется опыт, кроме пройденного обучения.
Через 1‒2 года работы — вилка 90‒100 тыс. рублей.
Вилка увеличивается до 120‒160 тыс. через 2‒5 лет. Добавляются такие факторы, как специализация прошлых компаний, размер проектов, работа с big data и прочее.
После 5 лет работы легче искать вакансии в смежных отделах или откликаться на такие узкоспециализированные позиции, как:
Доход дата-сайентистов
Исследование рынка аналитиков компании «Нормальные исследования» и рекрутингового агентства New.HR показывает, что специалисты по Data Science получают в среднем большую зарплату, чем аналитики других специальностей.
В России начальная зарплата дата-сайентиста с опытом работы до года — от 113 тыс. рублей.
В качестве опыта работы сейчас также учитывается прохождение обучающих программ.
Через 1‒2 года такой специалист уже может получать до 160 тыс.
Для сотрудника с опытом работы от 4‒5 лет вилка вырастает до 310 тыс.
Как проходят собеседования
На западе выпускники программ профессионального обучения проходят первое собеседование в среднем через 5 недель после окончания обучения. Около 85% находят работу через 3 месяца.
Процесс прохождения собеседований на вакансии инженера данных и дата-сайентиста практически не различается. Обычно состоит из пяти этапов.
Резюме. Кандидатам с непрофильным предыдущим опытом (например, из маркетинга) необходимо для каждой компании подготовить подробное сопроводительное письмо или иметь рекомендации от представителя этой компании.
Технический скрининг. Проходит, как правило, по телефону. Состоит из одного-двух сложных и столько же простых вопросов, касающихся текущего стека работодателя.
HR-интервью. Может проходить по телефону. На этом этапе кандидата проверяют на общую адекватность и способность общаться.
Техническое собеседование. Чаще всего проходит очно. В разных компаниях уровень позиций в штатном расписании отличается, и называться позиции могут по-разному. Поэтому на этом этапе проверяют именно технические знания.
Собеседование с техническим директором / главным архитектором. Инженер и сайентист — стратегические позиции, а для многих компаний к тому же новые. Важно, чтобы потенциальный коллега понравился руководителю и совпадал с ним во взглядах.
Что поможет сайентистам и инженерам в карьерном росте
Появилось достаточно много новых инструментов по работе с данными. И мало кто одинаково хорошо разбирается во всех.
Многие компании не готовы нанимать сотрудников без опыта работы. Однако кандидаты с минимальной базой и знанием основ популярных инструментов могут получить нужный опыт, если будут обучаться и развиваться самостоятельно.
Полезные качества для дата-инженера и дата-сайентиста
Желание и умение учиться. Необязательно сразу гнаться за опытом или менять работу ради нового инструмента, но нужно быть готовым переключиться на новую область.
Стремление к автоматизации рутинных процессов. Это важно не только для продуктивности, но и для поддержания высокого качества данных и скорости их доставки до потребителя.
Внимательность и понимание «что там под капотом» у процессов. Быстрее решит задачу тот специалист, у которого есть насмотренность и доскональное знание процессов.
Кроме отличного знания алгоритмов, структур данных и пайплайнов, нужно научиться мыслить продуктами — видеть архитектуру и бизнес-решение как единую картину.
Например, полезно взять любой известный сервис и придумать для него базу данных. Затем подумать, как разработать ETL и DW, которые наполнят её данными, какие будут потребители и что им важно знать о данных, а также как покупатели взаимодействуют с приложениями: для поиска работы и знакомств, прокат автомобилей, приложение для подкастов, образовательная платформа.
Позиции аналитика, дата-сайентиста и инженера очень близки, поэтому переходить из одного направления в другое можно быстрее, чем из других сфер.
В любом случае, обладателям любого ИТ-бэкграунда будет проще, чем тем, у кого его нет. В среднем взрослые мотивированные люди переучиваются и меняют работу каждые 1,5‒2 года. Легче это даётся тем, кто учится в группе и с наставником, по сравнению с теми, кто опирается лишь на открытые источники.
От редакции Нетологии
Если присматриваетесь к профессии Data Engineer или Data Scientist, приглашаем изучить программы наших курсов:
📊 Кто такой дата-инженер, чем он занимается и что должен знать?
Причём здесь дата и почему ею должен заниматься целый инженер?
Гордон Линдсей Глегг
Информация может быть разной: от статистических данных потребителей зубной пасты до списка переменных и их значений в условиях некой формулы. Как раз благодаря возможностям сбора, накапливания и последующей обработки данных получилось создать все концепции и технологии “умных” городов, “интеллектуальных” алгоритмов рекомендаций и прочие новомодные взаимодействия с информацией.
Накопленная информация сама по себе ничего не даёт: для получения выгоды её нужно обработать. Тут в дело вступает дата-инженер.
Чем дата-инженер отличается от аналитика?
Термин дата-сайентист (от англ. data scientist) у всех на слуху и обозначает коллегу дата-инженера. С учётом современных трендов на объединение или работу в команде, штатные единицы сайентиста (ученого, аналитика) и инженера представлены либо в одном лице, либо эти специалисты тесно сотрудничают друг с другом.
Итак, инженер выстраивает все каналы связи – от процесса сбора информации до её преобразования в нужный формат. Как в каком-нибудь промышленном симуляторе Factorio или Satisfactory: он находит источник данных, выстраивает конвейер для их передачи, а также создаёт инфраструктуру для обрабоки и преобразования информации.
Дальше вступает в дело аналитик: получив нужные данные он трансформирует их в необходимую форму. Именно аналитики создают различные модели, графики и прочую визуализацию. И они же красиво подают менеджменту выводы в текстовом формате. Грубо говоря, инженер собирает информацию, проводит её первичную обработку и отправляет аналитику. Тот же издевается над данными по полной: анализирует, проверяет гипотезы и на основе полученной информации создает новые знания и прочую ценность для бизнеса.
Что нужно знать дата-инженеру?
Для первичной обработки информации и организации её хранения инженеру понадобятся знания бекенда и в области разработки ПО. В качестве основного и самого популярного хранилища выступают СУБД (SQL и noSQL), поэтому в начале пути можно сфокусироваться на них.
Базовые требования
Дата-инженер работает с данными, а значит ему нужно знать о данных всё:
Заключение
Порог входа в профессию довольно высок, причём даже от новичка требуется понимание технологий, а не простое заучивание методов работы с инструментами, но в итоге потраченные усилия окупятся.
Если вы только собираетесь стать дата-инженером, стоит заранее подготовиться к тяжёлой, а иногда и нудной учёбе. Обратите внимание курс факультета Data Engineering российской образовательной онлайн-платформы GeekBrains. Учат здесь с нуля, постепенно продвигаясь по всем важным нюансам этой непростой специализации. Занятия с экспертами-практиками из ведущих технологических компаний России позволят сэкономить время, а успешно окончив курс, вы получите диплом о профессиональной переподготовке, электронный сертификат и помощь в трудоустройстве.
Кто такие дата-инженеры, и как ими становятся?
И снова здравствуйте! Заголовок статьи говорит сам о себе. В преддверии старта курса «Data Engineer» предлагаем разобраться в том, кто же такие дата-инженеры. В статье очень много полезных ссылок. Приятного прочтения.
Простое руководство о том, как поймать волну Data Engineering и не дать ей затянуть вас в пучину.
Складывается впечатление, что в наши дни каждый хочет стать дата-саентистом (Data Scientist). Но как насчет Data Engineering (инжиниринга данных)? По сути, это своего рода гибрид дата-аналитика и дата-саентиста; дата-инженер обычно отвечает за управление рабочими процессами, конвейерами обработки и ETL-процессами. Ввиду важности этих функций, в настоящее время это очередной популярный профессиональный жаргонизм, который активно набирает обороты.
Высокая зарплата и огромный спрос — это лишь малая часть того, что делает эту работу чрезвычайно привлекательной! Если вы хотите пополнить ряды героев, никогда не поздно начать учиться. В этом посте я собрал всю необходимую информацию, чтобы помочь вам сделать первые шаги.
Итак, начнем!
Что такое Data Engineering?
Честно говоря, нет лучшего объяснения, чем это:
«Ученый может открыть новую звезду, но не может ее создать. Ему придется просить инженера сделать это за него.»
–Гордон Линдсей Глегг
Таким образом, роль дата-инженера достаточно весома.
Из названия следует, что инженерия данных связана с данными, а именно с их доставкой, хранением и обработкой. Соответственно, основная задача инженеров — обеспечить надежную инфраструктуру для данных. Если мы посмотрим на ИИ-иерархию потребностей, инженерия данных занимает первые 2–3 этапа: сбор, перемещение и хранение, подготовка данных.
Чем занимается инженер данных?
С появлением больших данных сфера ответственности резко изменилась. Если раньше эти эксперты писали большие SQL-запросы и перегоняли данные с помощью таких инструментов, как Informatica ETL, Pentaho ETL, Talend, то теперь требования к дата-инженерам повысились.
Большинство компаний с открытыми вакансиями на должность дата-инженера предъявляют следующие требования:
Список используемых в этом случае инструментов может отличаться, все зависит от объема этих данных, скорости их поступления и неоднородности. Большинство компаний вообще не сталкиваются с большими данными, поэтому в качестве централизованного хранилища, так называемого хранилища данных, можно использовать базу данных SQL (PostgreSQL, MySQL и т. д.) с небольшим набором скриптов, которые направляют данные в хранилище.
IT-гиганты, такие как Google, Amazon, Facebook или Dropbox, предъявляют более высокие требования: знание Python, Java или Scala.
Дата-инженеры Vs. дата-саентисты
Ладно, это было простое и забавное сравнение (ничего личного), но на самом деле все намного сложнее.
Во-первых, вы должны знать, что существует достаточно много неясности в разграничении ролей и навыков дата-саентиста и дата-инженера. То есть, вы легко можете быть озадачены тем, какие все-таки навыки необходимы для успешного дата-инженера. Конечно, есть определенные навыки, которые накладываются на обе роли. Но также есть целый ряд диаметрально противоположных навыков.
Наука о данных — это серьезное дело, но мы движется к миру с функциональной дата саенс, где практикующие способны делать свою собственную аналитику. Чтобы задействовать конвейеры данных и интегрированные структуры данных, вам нужны инженеры данных, а не ученые.
Является ли дата-инженер более востребованным, чем дата-саентист?
— Да, потому что прежде чем вы сможете приготовить морковный пирог, вам нужно сначала собрать, очистить и запастись морковью!
Дата-инженер разбирается в программировании лучше, чем любой дата-саентист, но когда дело доходит до статистики, все с точностью до наоборот.
Но вот преимущество дата-инженера: без него/нее ценность модели-прототипа, чаще всего состоящей из фрагмента кода ужасного качества в файле Python, полученной от дата-саентиста и каким-то образом дающей результат, стремится к нулю.
Без дата-инженера этот код никогда не станет проектом, и никакая бизнес-проблема не будет эффективно решена. Инженер данных пытается превратить это все в продукт.
Основные сведения, которые должен знать дата-инженер
Итак, если эта работа пробуждает в вас свет и вы полны энтузиазма — вы способны научиться этому, вы можете овладеть всеми необходимыми навыками и стать настоящей рок-звездой в области разработки данных. И, да, вы можете осуществить это даже без навыков программирования или других технических знаний. Это сложно, но возможно!
Каковы первые шаги?
Вы должны иметь общее представление о том, что есть что.
Прежде всего, Data Engineering относится к информатике. Конкретне — вы должны понимать эффективные алгоритмы и структуры данных. Во-вторых, поскольку дата-инженеры работают с данными, необходимо понимание принципов работы баз данных и структур, лежащих в их основе.
Например, обычные B-tree SQL базы данных основаны на структуре данных B-Tree, а также, в современных распределенных репозиториях, LSM-Tree и других модификациях хеш-таблиц.
* Эти шаги основаны на замечательной статье Адиля Хаштамова. Итак, если вы знаете русский язык, поддержите этого автора и прочитайте его пост.
1. Алгоритмы и структуры данных
Использование правильной структуры данных может значительно улучшить производительность алгоритма. В идеале, мы все должны изучать структуры данных и алгоритмы в наших школах, но это редко когда-либо освещается. Во всяком случае, ознакомится никогда не поздно.
Итак, вот мои любимые бесплатные курсы для изучения структур данных и алгоритмов:
Вся наша жизнь — это данные. И для того, чтобы извлечь эти данные из базы данных, вам нужно «говорить» с ними на одном языке.
SQL (Structured Query Language — язык структурированных запросов) является языком общения в области данных. Независимо от того, что кто-то говорит, SQL жил, жив и будет жить еще очень долго.
Если вы долгое время находились в разработке, вы, вероятно, заметили, что слухи о скорой смерти SQL появляются периодически. Язык был разработан в начале 70-х годов и до сих пор пользуется огромной популярностью среди аналитиков, разработчиков и просто энтузиастов.
Без знания SQL в инженерии данных делать нечего, так как вам неизбежно придется создавать запросы для извлечения данных. Все современные хранилища больших данных поддерживают SQL:
Для анализа большого слоя данных, хранящихся в распределенных системах, таких как HDFS, были изобретены механизмы SQL: Apache Hive, Impala и т. д. Видите, он не собирается никуда уходить.
Как выучить SQL? Просто делай это на практике.
Для этого я бы порекомендовал ознакомиться с отличным учебником, который, кстати, бесплатный, от Mode Analytics.
3. Программирование на Python и Java/Scala
Почему стоит изучать язык программирования Python, я уже писал в статье Python vs R. Выбор лучшего инструмента для AI, ML и Data Science. Что касается Java и Scala, большинство инструментов для хранения и обработки огромных объемов данных написаны на этих языках. Например:
Чтобы погрузиться в язык Scala, вы можете прочитать Программирование в Scala от автора языка. Также компания Twitter опубликовала хорошее вводное руководство — Scala School.
Что касается Python, я считаю Fluent Python лучшей книгой среднего уровня.
4. Инструменты для работы с большими данными
Вот список самых популярных инструментов в мире больших данных:
Знание хотя бы одной облачной платформы находится в списке базовых требований, предъявляемым к соискателям на должность дата-инженера. Работодатели отдают предпочтение Amazon Web Services, на втором месте — облачная платформа Google, и замыкает тройку лидеров Microsoft Azure.
Вы должны хорошо ориентироваться в Amazon EC2, AWS Lambda, Amazon S3, DynamoDB.
6. Распределенные системы
Работа с большими данными подразумевает наличие кластеров независимо работающих компьютеров, связь между которыми осуществляется по сети. Чем больше кластер, тем больше вероятность отказа его узлов-членов. Чтобы стать крутым экспертом в области данных, вам необходимо вникнуть в проблемы и существующие решения для распределенных систем. Эта область старая и сложная.
Эндрю Таненбаум считается пионером в этой области. Для тех, кто не боится теории, я рекомендую его книгу «Распределенные системы», для начинающих она может показаться сложной, но это действительно поможет вам отточить свои навыки.
Я считаю «Проектирование приложений с интенсивным использованием данных» под авторством Мартина Клеппманна лучшей вводной книгой. Кстати, у Мартина есть замечательный блог. Его работа поможет систематизировать знания о построении современной инфраструктуры для хранения и обработки больших данных.
Для тех, кто любит смотреть видео, на Youtube есть курс Распределенные компьютерные системы.
7. Конвейеры данных
Конвейеры данных — это то, без чего вы не можете жить в качестве дата-инженера.
Большую часть времени дата-инженер строит так называемую пайплайн дату, то есть создает процесс доставки данных из одного места в другое. Это могут быть пользовательские сценарии, которые идут к API внешнего сервиса или делают SQL-запрос, дополняют данные и помещают их в централизованное хранилище (хранилище данных) или хранилище неструктурированных данных (озера данных).
Подводя итог: основной чеклист дата-инженера
Подытожим — необходимо хорошее понимание следующего:
И, наконец, последнее, но очень важное, что я хочу сказать.
Путь становления Data Engineering не так прост, как может показаться. Он не прощает, фрустрирует, и вы должны быть готовы к этому. Некоторые моменты в этом путешествии могут подтолкнуть вас все бросить. Но это настоящий труд и учебный процесс.
Просто не приукрашивайте его с самого начала. Весь смысл путешествия в том, чтобы узнать как можно больше и быть готовым к новым вызовам.
Вот отличная картинка, с которой я столкнулся, которая хорошо иллюстрирует этот момент:
И да, не забудьте избегать выгорания и отдыхать. Это тоже очень важно. Удачи!
Как вам статья, друзья? Приглашаем на бесплатный вебинар, который состоится уже сегодня в 20.00. В рамках вебинара обсудим, как построить эффективную и масштабируемую систему обработки данных для небольшой компании или стартапа с минимальными затратами. В качестве практики познакомимся с инструментами обработки данных Google Cloud. До встречи!





