Кто такой Инженер данных

visibility 404
01 Окт 2020г. в 08:09

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

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



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

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



С появлением Big Data сфера ответственности специалистов по обработке данных изменилась. Если раньше инженеры писали большие SQL-запросы и обрабатывали данные с помощью таких инструментов, как Informatica ETL, Pentaho ETL, Talend, то теперь от них ждут большего. Специалисту нужно отлично знать SQL и Python, желательно — Java/Scala, иметь опыт работы с облачными платформами, в частности Amazon Web Services.

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

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

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

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



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

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

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




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



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

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



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

Освойте SQL



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

Научитесь писать код на Python и Java / Scala



С необходимостью Java и Scala все очевидно: большинство инструментов для хранения и обработки больших данных написаны на этих языках. В их числе Hadoop, HDFS, Apache Cassandra, HBase, Apache Hive на Java; Apache Kafka и Apache Spark на Scala. Чтобы понять, как работают инструменты, нужно знать языки, на которых они написаны.

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

Освойте облачные платформы



Знание хотя бы одной облачной системы есть в требованиях почти каждой вакансии на должность инженера данных. Работодатели отдают предпочтение Amazon Web Services, реже — Google Cloud Platform и Microsoft Azure. Важно хорошо ориентироваться в Amazon EC2, AWS Lambda, Amazon S3, DynamoDB.

Поймите, как работают распределенные системы



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

Освойте конвейеры обработки данных



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



Оставить комментарий

Ваше имя::


Комментарий::




Ничего не найдено