/data-engineering

Getting Started with Data Enngineering

Getting Started with Data Engineering

Введение

Все привет! Меня зовут Дмитрий Аношин. Вот уже 4 года я работаю дата инженером в Амазон. Когда я присоединился в 2016 года на позицию data engineer, я особо не вдавался в подробности, что это за роль. Просто искал работу в области данных, желательно Business Intelligence разработчиком. А получилось найти позицию data engineer в Amazon. Частично мне повезло, частично я это было заслуженно. С 2010 года я непрерывно учился и развивался в области аналитики. Я преследовал несколько целей

  1. Я хотел получать хорошую зарплату
  2. Я хотел рабоать в хорошей компании
  3. Я хотел работать заграницей, желательно близко к морю или океану.

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

Сам я читал много книг и смотрел много обучающих курсов на Coursera и EDX. И часто курс бывает неитресный и скучный. Я бы не хотел сделать, еще один скучный курс, поэтому курс будет меняться и эволюционировать, у него могут появлятся новые модули и изменятся старые.

Я не преследую цели научить всех и не преследую цели зарабатывать на студентах. Так сложилось, что за свою карьеру я помог 8ми знакомым пройти путь с 0 до трудойстройства и 6 человек досих пор успешно работают с данными.

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

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

Так же хотелось бы создать экосистему, не просто набор видео лекций и упражнений, но framework в котором люди могу помогать друг другу с решением задач и упражнений и делится опытом. Будет просто замечательно, если вы станете data ambasador и будет принимать участие в создание, исправлении и добавлении контента.

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

Кстати, если задуматься над вопрос, что самое ценное в курсе? То я бы ответил 2 момента:

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

Если по результату курса, вы можете ответить на эти 2 вопроса, то остально уже дело техники и гугл вам в помощь.

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

Курсы Data learn

На начальном этапе существует 2 курса, которые взаимосвязаны:

  1. Getting Started with Data Engineering - курс про работу мою инженером данных. Если бы я брал на работу инженера данных, я бы хотел, чтобы он обладал знаниями и компетенциями, которые мы затронем в курсе.
  2. Data Literacy - это совсем базоый курс, для тех, кто совсем не работал с данными, никогда, и вот ему пришлось. Задачки могут быть типа открыть отчет и прочитатеть его, понять о чем отчет, как им пользоваться, то есть как аналитика для менджеров бизнес поразделений.

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

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

Если первый два курса хорошо зайдут, то можно будет добавить специализации по отдельным технологиям или углубляться в отдельные модули, например Python, Spark, Streaming, Cloud и многое другое. Возможно появятся заинтересованные люди, которые захотят создать свой курс.

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

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

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

Требования

Я уже писла про требования к курсы в нашем Slack:

  • доступ в интернет;)
  • экран 15" и больше
  • иметь 16Gb оперативки, иначе будет тормозить
  • операционные системы Windows и Maс. Linux тоже пойдет.
  • чтобы сделать доступ к AWS возможно понадобится ввести номер банковской карты при регистрации
  • знание английского на уровне чтения
  • умение гуглить
  • наличие социальной сети, чтобы рассказать о курсе
  • slack
  • акаунт github

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

В России есть yandex и mail cloud, я с ними не работел, и мне кажется они сыроваты для аналитики.

Подготовка к курсу по Data Engineering

Есть некоторые вещи, которые желательно или важно знать. Во время курса мы будем их разбирать, но будет хорошо, если сможете разобраться.

  • Excel это универсальный инструмент для работы с данными. Если вы никогда не работали, найдите любой ресурс и потренируйтесь. Страница excel это как таблица, где есть строки и столбцы и можно выполнять операции над данными. Отличная аналогия для баз данных и хранилищ данных. Так же в Excel можно создавать графики и Pivot (вы знаете, что это?) - это уже как BI инструмент.
  • SQL это для меня самый важный элемент. Чтобы там не говорили про Python/Scala/Java, большинство компаний (тот же Амазон) имеют базы данных, и бизнес пользователи и аналитику используют SQL, чтобы получать данные с помощью SQL. Мне нравится ресурс sql-ex.ru. Там есть упражнения для SELECT, достаточно сделать около 30 упражнений, чтобы понять как используются SELECT, FROM, GROUP BY, ORDER BY, HAVING, UNION, JOIN, подзапросы. Этого хватит с головой! Есть и множество других ресурсов!
  • Python - так сложилось, что Python стал главный языком для инжиниринга данных, но не главнее SQL. С Python можно сделать все, от графика/отчета, до инструмента трансформации данных, Machine Learning модели и тп. Я склоняюсь к тому, что python это уже следующий уровень, сначало надо занть SQL. Например, работая Data Engineer я 80% использую SQL, так как данные либо в озере данных, либо в хранилище данных. В редких случаях нужен Spark (PySpark или Scala).
  • CLI - это command line interface или командная строка. Это важный навык, так как часто программы установлены на Linux машинах, где нет графического интерфейса, и нужно командами запускать программы и перемещаться по папкам. Вот отличный курс - Introduction to Shell.
  • GitHub - так как мы используем гитхаб как учебник, то обязательно посмотрите как он работает. Сам по себе гит очень популярен для разработчик, чтобы хранить код или делать code review (смотреть изменения в коде). Он хорошо работает для SQL, Python, но не работает для приложений как Tabelau и PowerBI. Вот инструкция на русском

Кто такой дата инженер?

Мне очень нравится слово ИНЖЕНЕР. Я сам по специальности Инженер конструктор. Для меня инжинер это профессионал, которые может посмотреть на предмет и мысленно его разобрать на составные части, найти неисправность в неработающем предмете или создать новый предмет на базе требований заказчика, используя свои профессиональные инструменты. Инжинеры не знаю все обо всем, он понимает базовые принципы и они видят конечную цель, а дальше с использованием инструментария и навыков они творят.

Инжинеры бываю разные, мы будет говорить про инжинеров, которые работаю с данными. Незнаю как у вас, но до Амазона, я слово data engineer не спользовал, вместо инженера были просто разработчики и специалисты:

  • Разработчик ПО
  • Разработчик Отчетов
  • Специалист data mining
  • BI Разработчик
  • ETL разработчик
  • DW разработчик

И еще были архитектор, все теже словы, но со словами архитектор, это значит уже опытный специалист, которы может не просто что-то делать, но и создавать архитектуру решения (DW, BI, ETL).

Прежде всего, для меня существует два типа Инженера Данных:

  1. Программист, который стал Инженером Данных
  2. BI/DW/ETL разработчик, который стал Инженером Данных

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

Источники данных могут быть разными: реляционные базы данных, SFTP, API, файлы с логами, сенсоры. Типа данных тоже может быть разный – структурированные данные в табличном формате, полу-структурированные данные (JSON, XML) и не структурированные данные (видео, аудио).

В зависимости от бизнес требования, Инженеру данных необходимо создать поток данных (data pipeline), который автоматически будет забирать данные и загружать их в платформу данных (хранилище данных или озеро данных). Вам необходимо выбрать инструменты для работы с данными.

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

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

И теперь самое интересно, в зависимости от вашего опыта, вы можете использовать языки программирования Java/Python и т.д. для создания решения - типа Инженера Данных №1 (Technical Data Engineer), а можете использовать готовые решения, которые позволять вам создавать масштабируемы и безопасные решения, быстро достигать результаты – типа Инженера Данных №2 (пусть будет Result Oriented Data Engineer).

Без программирования не обойтись даже для 2го типа, но вам не надо быть гуру программистом, достаточно понимать, как работает Python и использовать небольшие куски кода для кастомизации решения.

Главное в этом курсе даже не зубрежка программирования или конкретного продукта, а понимания принципов по работе с данными, классов инструментов и возможных бизнес задач и пути их решения, а для всего остального есть Google;)