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

—

от автора

в

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

cover-final.png

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

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

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

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

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

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

2. Бэкенд-разработчики

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

3. Техлиды и менеджеры

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

Рекомендуемые знания до программы:

  1. Python
    • Это основной язык программирования на программе
    • Хорошо, если вы уже знакомы с базовым синтаксисом, циклами, условными операторами, функциями, чтением и записью файлов. Это понадобится для работы со Spark и Airflow
  2. Базовые знания Linux
    • Вы будете использовать командную строку Linux при работе с кластером
    • Хорошо, если вы уже знаете, как заходить на удалённый сервер по ssh, умеете настраивать авторизацию по ssh-ключу и владеете базовыми командами для перемещения по директориям, созданию и редактированию файлов, и знаете как выйти из vim
  3. SQL
    • Вы будете использовать Apache Spark. Знание языка SQL может быть полезно для написания скриптов на SparkSQL
    • Помимо этого, в нескольких лабах вам нужно будет писать небольшие SQL-запросы к ClickHouse

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

  1. Вы хотите научиться обучать ML-модели
    • Эта программа техническая и включает инженерные практики, которые могут показаться перебором для такого запроса
    • Вам больше подойдёт наша другая программа: Введение в большие данные
  2. Вы не хотите делать лабы и настраивать инструменты
    • Вы конечно можете пройти программу как слушатель и только просматривать занятия, но такой формат существенно уменьшает ценность вашего участия и потраченного времени
  3. Вы не хотите писать код или боитесь терминала
    • Эта программа включает много практики и построена так, что почти во всех лабах придется править конфиги на машинах и писать код в том или ином виде
    • Если такие перспективы вас отпугивают, скорее всего, программу пройти будет тяжело
  4. У вас высокая нагрузка в даты программы
    • В зависимости от вашего начального уровня, участие в программе будет занимать около 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 руб.