Data Engineer (20-й поток) [Newprolab] [Игорь Мосягин, Николай Марков, Сергей Гришаев]

Джокер

Администратор
Регистрация
1 Янв 2015
Сообщения
155.164
Реакции
80.132
Складчина: Data Engineer (20-й поток) [Newprolab] [Игорь Мосягин, Николай Марков, Сергей Гришаев]



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

Данные из Kafka можно загрузить в ClickHouse, а расчёт агрегатов настроить с помощью Airflow. На курсе вы разберётесь, как организовать такую пакетную обработку, написать собственный DAG и подойти к потоковой обработке данных.

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

Кому будет полезна программа:

1. Аналитики данных

Аналитика данных всё больше перестаёт быть изолированной от инфраструктуры обработки данных. Вам будет полезно пройти эту программу, чтобы лучше понимать общий цикл работы с данными
Даже если вы не планируете переходить в область DE, понимание общих принципов расширит ваши возможности как специалиста и поможет проще находить общий язык с дата-инженерами
Также вы сможете понять, каково это – работать в более инженерной роли без серьёзных карьерных потрясений
2. Бэкенд-разработчики

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

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

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

Базовые знания Linux
Вы будете использовать командную строку Linux при работе с кластером
Хорошо, если вы уже знаете, как заходить на удалённый сервер по ssh, умеете настраивать авторизацию по ssh-ключу и владеете базовыми командами для перемещения по директориям, созданию и редактированию файлов, и знаете как выйти из vim

SQL
Вы будете использовать Apache Spark. Знание языка SQL может быть полезно для написания скриптов на SparkSQL
Помимо этого, в нескольких лабах вам нужно будет писать небольшие SQL-запросы к ClickHouse

Кому программа не подойдет:

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

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

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

У вас высокая нагрузка в даты программы
В зависимости от вашего начального уровня, участие в программе будет занимать около 20 часов в неделю и требовать вашего внимательного погружения
Если вы не сможете выделить столько времени, советуем вернуться к программе в будущем

Погружение в практику:

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

Путь дата-инженера:

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

Данные должны быть доступными, точными, своевременными, непротиворечивыми, релевантными:

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

Специалисты по выстраиванию инфраструктуры для таких процессов и разбирающиеся в архитектуре хранилищ данных – это востребованная специальность в современном дата-мире.

Как устроена программа:

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

1. Теперь 10 лаб

За два месяца вы выполните 10 практических заданий – лаб, каждая из которых использует разные инструменты, про которые вам будут рассказывать на занятиях
Лабы критически важны для понимания возможностей и ограничений использования этих инструментов
Уже на второй неделе вы научитесь разворачивать Apache Kafka, отправлять в эту систему сообщения и обрабатывать их
Познакомитесь с тем, как писать пайплайны на Apache Airflow – двумя популярными инструментами в области обработки данных
2. Логика работы DE

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

Каждая лаба базируется на использовании ключевых инструментов и фреймворков. Преподаватели-практики покажут и расскажут на занятиях, как ими пользоваться
Часть инструментов вы сможете проработать глубоко: Kafka, Airflow, ClickHouse, Spark, Redis, Docker. Они будут использованы в лабах и по ним будут подробные занятия
В программу также входит рассмотрение этих универсальных инструментов: Apache Flink, Grafana, dbt, Kubernetes и др. По некоторым из них будут дополнительные задания
Наши принципы обучения:

Мы создаем все условия для того, чтобы максимально приблизить опыт участников к реальным условиям работы (Project Based Learning). Поэтому основу наших программ составляют лабы (лабораторные работы) – системные большие практические задания, которые максимально приближены к реальным задачам специалистов по работе с данными.

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

Инфраструктура программы:

Все презентации, jupyter-ноутбуки, лабы и мануалы мы выкладываем в закрытый репозиторий на GitHub.


Спойлер: Часто задаваемые вопросы
1. Я живу за границей. Подходит ли мне эта программа?

Да, конечно! Наша программа отлично подойдёт, если вы уже переехали или только планируете строить карьеру в другой стране. Обучение проходит на русском языке, но с упором на международные технологии (Spark, Scala, SQL, архитектура дата-платформ). А знания пригодятся как на локальных рынках (СНГ, Европа, Израиль), так и в глобальных IT-компаниях.

2. А я вообще справлюсь?

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




Программа:

Лабораторные работы
Темы занятий: Apache Kafka, DWH, Airflow, ClickHouse, Hadoop, Spark, Docker, Ansible, Kubernetes, Spark Streaming, мониторинг Linux-инфраструктуры, форматы хранения данных, CI/CD, Redis, базы данных и хранилища, параллелизм в Python, Flink, NiFi, dbt, Small Data и карта развития дата-инженера


Спойлер: Подробно
Лабораторные работы:

Лаба 1. Подготовка инфраструктуры

Вы настроите собственную ноду в облаке, которая станет вашим учебным стендом для всей программы – так вы разберетесь, как настроить необходимые доступы для следующих лаб
Вы прокачаете базовые практики DevOps и познакомитесь с компонентами дата-инфраструктуры
Лаба 2. Batch-обработка

Вы организуете пакетную обработку данных в хранилище: получите данные из Kafka с помощью landing-схемы в ClickHouse, а затем, используя Airflow, будете считать агрегаты и перекладывать данные внутри ClickHouse
Вы напишете свой DAG для обработки и научитесь использовать консоль для управления этими инструментами
Здесь понадобятся базовые знания Python и отсутствие страха работы с командной строкой
Лаба 3. Потоковая обработка данных

Так как под "потоковой обработкой" часто имеют ввиду "батч-обработку просто с очень маленькими батчами", то эта лаба будет опираться на предыдущую с добавлением новых инструментов
Здесь также заложена вариативность используемых инструментов, и у вас будет возможность познакомиться с несколькими решениями реализации потоковой обработки в зависимости от технических условий задачи
Лаба 4. Data-сервис

Вам предстоит написать свой небольшой сервис на Python (мы покажем как) и добавить две системы для дашбордов: одну с бизнес-метриками и одну для операционных задач
Мы разберёмся, в чём разница, и на каких технологиях это делается – примерим на себя шляпу инженера разработки аналитики
Лаба 5. Сервис персонализации

Вам предстоит использовать очень грязный источник для дополнительного обогащения данных о событиях пользователей e-commerce портала
Вы создадите витрину для маркетинговой аналитики по результатам прошедшей распродажи и изрядно повозитесь с расчётом агрегатов
Лаба 6. Контейнеризация и CI/CD

Ты реализуешь версионирование своего проекта: создашь и настроишь окружение для автоматической сборки и публикации своих пайплайнов в облако
Научишься основам управления версиями, автоматизации развёртывания и познакомишься с инструментами для управления контейнерами
Лаба 7. dbt

С помощью инструмента dbt соберёте аналитическую витрину в ClickHouse на базе данных о поведении пользователей
Закрепите работу с источниками и генерацию моделей данных в аналитическом хранилище
Лаба 8. Хранилище для BI-дашборда

Эта лаба отличается более открытым техзаданием и позволяет составить впечатление о том, как может выглядеть ваша работа при коммуникации с людьми, далёкими от мира обработки данных
У вас будет постоянно пополняющийся внешний источник данных, для которого нужно спроектировать хранилище и реализовать BI-дашборд с ответами на вопросы бизнес-аналитиков
Темы занятий:

Тема 1. Apache Kafka:

Краткая история развития Kafka
Ключевые концепции и зачем она может вообще быть нужна
Топики, publisher/subscriber модель, внутренние компоненты
Инструменты и библиотеки для работы с Kafka
Демо
Тема 2. DWH:

OLAP MPP DB: определение, цели, особенности
Распространенные решения
Архитектура OLAP MPP DB на примере Vertica
Демонстрация работы: таблицы, проекции, запросы
Data warehouse: общие сведения и методологии
Тема 3. Airflow:

Зачем, что и как можно автоматизировать
Компоненты Airflow которые надо знать, чтобы сделать на нём что-нибудь
Как написать свой DAG и что это такое
Куда и как развивается проект
Чем можно заменить Airflow и на что обращать внимание при сравнении
Демо, лайвкодинг
Тема 4. ClickHouse:

Что такое колоночные базы данных и зачем они нужны
Дизайн ClickHouse
Оптимизация схемы для производительности
Загрузка JSON в ClickHouse
ClickHouse и Kafka
Тема 5. Hadoop:

Как хранить и обрабатывать данные
Что является большими данными, а что - нет
Какие средства обработки и хранения данных есть, и как они работают
Тема 6. Spark:

Общее устройство и преимущества Spark
Три уровня API к данным. DataFrame. Как создавать, читать, смотреть и писать данные с HDFS и других источников (в т.ч. PostgreSQL). Схема датафрейма
Способы обращения к колонкам
Оптимизации при чтении. Push-down filter
Ленивое выполнение. Трансформации и действия
Очистка данных. Встроенные и пользовательские функции. Агрегационные функции
Union и join – отдельные моменты
Кэширование и контрольные точки
Shuffle и Broadcast
Немного про модель памяти
Тема 7. Docker. Ansible. Kubernetes:

Пишем свой Dockerfile
Как запускать контейнеры из командной строки
Пара слов о Docker Compose
Зачем нужен Kubernetes
Играем в локальный кластер
Настройка сети и прочие шалости
Хранение данных в Kubernetes
Тема 8. Spark Streaming:

Structured Streaming
Rate Streaming
File Streaming
Kafka Streaming
Stateful Streaming
Окна: дубликаты и watermark'и, агрегаты
Join: static и stream
Тема 9. Мониторинг Linux-инфраструктуры:

Зачем дата-инженерам траблшутинг
Диагностируем проблемы из консоли
Как руками анализировать состояние CPU, RAM, дисковой и сетевой подсистемы
Системные вызовы и низкий уровень анализа
Обзор существующих комплексных решений для мониторинга и работа с ними
Тема 10. Форматы хранения данных:

Txt
SequenceFile
Avro
Protobuf
ORC
Parquet
Тема 11. CI/CD:

Что такое DevOps и MLOps?
Пара слов о методологиях разработки программного обеспечения
Управление зависимостями Python-проекта
Репозитории для всего сразу и одновременно
Аргументы и конфиги
Работа с пакетами для Python
Как выглядит CI/CD на GitlabCI и Jenkins
Пара слов об управлении конфигурацией через Ansible
Тема 12. Redis:

Какие бывают различия между NoSQL и SQL
Как использовать redis как горячее хранилище
Как использовать redis для ускорения расчётов
Когда стоит и когда не стоит использовать redis
Демо
Тема 13. Введение в базы данных. Хранилища и методологии:

Реляционная модель и PostgeSQL
Structured Query Language
ACID и транзакции
Моделирование данных
Индексы и оптимизации
Greenplum
Тема 14. Параллелизм в Python:

Как устроены потоки в операционных системах
Зачем в питоне GIL и как он работает
В чем разница между параллельностью, асинхронностью и конкурентностью
Пара слов о микросервисах на Python
Асинхронная работа со внешними хранилищами
Тема 15. Flink:

Scala: основы и базовый синтаксис
Apache Flink: описание и сравнение со Spark Streaming
Flink API: источники и приемники, операторы, event time vs processing time
Практические примеры
Внутреннее устройство Flink
Тема 16. NiFi:

Что такое NiFi
Controller Services
Список доступных процессоров
Flow File Details
Объединение в Process Group
Статусы процессоров
Список всех шаблонов
Процессор SplitJson
Convert JSONToSQL
PutSQL
One registry
Registry & Git
Variables & Parameter Contexts
Кластерный режим – архитектура
MiNiFi
Тема 17. dbt:

Что такое dbt и какие задачи решает
Основные термины, особенности и фичи инструмента
Как запустить dbt с любой БД
Демо (посмотрим, как всё просто работает)
Документирование и тестирование данных из коробки
Как запустить dbt в продуктиве
Новые возможности с Python-моделями
Тема 18. Small Data:

Снова о том, что такое Big Data
Причины популярности инструментов анализа данных
На какие старые подходы стоит обратить внимание
Почему Developer Experience снова оказывается важен
Какие технологии посмотреть и что попробовать для хранилищ небольших данных
Тема 19. Карта развития дата-инженера:

Куда развиваться
Направления и задачи


Авторы:

Игорь Мосягин

Ментор программы
Data Consultant, shrimpsizemoose AB
Дмитрий Андреев

Координатор
Ведущий инженер по работе с инфраструктурой данных, Райффайзенбанк
Максим Тарасов

Координатор
Lead R&D Engineer, White Wave Media


Спойлер: Далее
Николай Марков

Data Platform Lead, Altenar
Сергей Гришаев

Senior Data Engineer, Wildberries
Егор Матешук

Технический директор, ГПМ Дата
Александр Зайцев

CTO, Altinity
Валерия Дымбицкая

Разработчик, Upgini
Екатерина Островская

Руководитель направления развития бизнес хранилища данных, Райффайзенбанк
Андрей Кучеров

TechLead DE, Beeline
Андрей Серебрянский

Lead Developer, Яндекс


Старт весной 2027 года.

Цена 134400 руб.




СКАЧАТЬ СЛИВЫ КУРСОВ
 

Возможно, Вас ещё заинтересует: