Складчина: 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 руб.