2025/2026




Data Engineering для аналитиков
Статус:
Маго-лего
Где читается:
Факультет компьютерных наук
Когда читается:
2 модуль
Охват аудитории:
для своего кампуса
Язык:
русский
Кредиты:
3
Контактные часы:
40
Программа дисциплины
Аннотация
Студенты освоят инструмент Data Engineering - Apache Airflow, платформу с открытым исходным кодом для создания, планирования и мониторинга данных и вычислительных рабочих процессов. В ходе обучения студенты погрузятся в кейсы “Data Engineering для аналитиков”, выполнят проект и приобретут умение использовать навыки инженера данных для решения аналитических задач.
Цель освоения дисциплины
- Сформировать целостное понимание экосистемы инструментов для работы с данными (Airflow, Hadoop, Hive, HBase, Spark, Kafka) и их места в архитектуре современных систем хранения и обработки данных.
- Научить студентов проектировать, реализовывать и сопровождать конвейеры обработки данных (ETL/ELT) с использованием Airflow и связанных технологий.
- Ознакомить с архитектурными принципами распределённых систем (HDFS, YARN, MapReduce, Spark, Hive, HBase) и их применением для анализа и хранения больших данных.
- Развить навыки интеграции различных технологий (Airflow, Spark, Kafka, Greenplum, S3) в сквозные пайплайны обработки и аналитики данных.
- Научить профилировать, отлаживать и оптимизировать задачи обработки данных на разных уровнях (от ОС и JVM до Spark job и кластера).
Планируемые результаты обучения
- Познакомимся с возможностями Airflow: шедулинг задач, трекинг прогресса, логгирование.
- Напишем простой DAG с зависимостями и PythonOperator.
- Разберёмся, как Airflow может использоваться в ETL-процессах.
- Узнали, что такое ETL
- Смогли выбрать оркестратор под свои нужды — разница между батчёвой загрузкой и real-time, code/low code, code/ui — и это Airflow
- Поймём, чем занимается Airflow — какие возможности есть в Airflow и с помощью каких абстракций они реализуются (на примерах).
- Научились ориентироваться в UI Airflow
- Поверхностно познакомились с источниками данных
- Поняли, из каких частей системно состоит airflow
- Узнали, что такое таски и операторы
- Разобрались, чем даги и таски отличаются от экземпляров дагов и экземпляров тасок
- Научились описывать пайплайны тремя способами
- Научились работать с расписанием в Airflow
- Разобрались с загрузкой исторических данных
- Выяснили, что бывает при ошибках в процессе работы дага
- Больше узнали про параметры дага
- Познакомились с основными операторами
- Узнали, что такое сенсоры
- Научились использовать параметры инстанса дага
- Выяснили, как изменять поведение потоков данных
- Узнаем основные принципы правильного построения пайплайнов
- Определяет роль ключевых компонентов Airflow (Scheduler, база метаданных, хуки, сенсоры, операторы) в работе ETL-процессов.
- Различает DAG и DAG Instance и объясняет, как задаётся расписание выполнения задач в Airflow.
- Анализирует ограничения Airflow (невозможность работы в real-time, неподдержка динамических пайплайнов) и формулирует область его применения.
- Описывает механизмы управления выполнением задач в Airflow (retries, TriggerRule, XCom, логическое ветвление, меж-DAG взаимодействие).
- Разъясняет различия между озером данных и аналитическим хранилищем и характеризует их роль в архитектуре DAMA DMBOK.
- Описывает назначение и взаимодействие Airflow, Spark и Greenplum в построении сквозных пайплайнов обработки данных.
- Формулирует принципы создания витрин данных в Greenplum с использованием PXF над файлами в S3.
- Объясняет требования к структуре DAG Airflow, включая работу SparkKubernetesOperator, сенсоров и SQLExecuteQueryOperator.
- Анализирует принципы идемпотентного создания таблиц и представлений (views) для реализации бизнес-логики (отчет по брендам, определение ненадежных продавцов).
- Описывает логику расчета ключевых метрик (potential_revenue, total_revenue, returned_items_count, item_rate_percent и др.) и их использование в аналитических витринах.
- Описывает архитектуру HDFS и различает роли основных компонентов (NameNode, Secondary NameNode, DataNode, клиент)
- Характеризует процесс хранения, чтения и записи данных в HDFS, включая механизм репликации и его назначение
- Анализирует проблему мелких файлов в HDFS и её влияние на производительность и использование памяти NameNode
- Разъясняет назначение и преимущества Erasure Coding по сравнению с трёхкратной репликацией, включая использование алгоритма Reed–Solomon
- Создает сервисный аккаунт в Yandex Cloud и назначает ему необходимые роли для работы с S3 и DataProc
- Настраивает S3-бакет, создаёт сеть, NAT-шлюз, таблицу маршрутизации и группу безопасности
- Конфигурирует правила ingress и egress для корректной работы мониторинга, Object Storage и SSH-подключений
- Создает кластер DataProc с нужными сервисами (HDFS, Hive, MapReduce, Spark, YARN, Tez) и назначает сервисный аккаунт и S3-бакет
- Подключается к виртуальной машине кластера по SSH, используя публичный адрес и ключи
- Управляет параметрами доступа (root или ubuntu, использование ключей с флагом -i) при подключении к нодам кластера
- Создает сервисный аккаунт в Yandex Cloud и назначает ему необходимые роли
- Привязывает платежный аккаунт и активирует промокод на дополнительные ресурсы
- Настраивает уведомления о расходах в Yandex Cloud с помощью бюджетов
- Подключается к master-ноде Hadoop-кластера по SSH с использованием ключей
- Создает директорию на HDFS и управляет файлами с помощью команд hadoop fs (ls, mkdir, put, cat, text, tail)
- Загружает локальные файлы в HDFS, проверяет их разбиение на блоки и расположение с помощью hdfs fsck
- Меняет replication factor файла с помощью hadoop fs -setrep и проверяет результат
- Работает с блоками напрямую на дата-нодах (find, ls, cat), анализирует их содержимое и проверяет процесс дорепликации при удалении блока
- Устанавливает и настраивает awscli, создает профиль и подключается к S3-хранилищу для скачивания данных
- Загружает данные из S3 в HDFS с заданным размером блока и количеством реплик
- Использует команды text, head, tail для анализа больших файлов на HDFS
- Контролирует MapReduce задания в YARN Resource Manager Web UI при копировании данных (для варианта с distcp)
- Понимает различия между архитектурой Hadoop v.1 (Job Tracker, Task Tracker) и YARN (Resource Manager, Node Manager, Application Master).
- Объясняет роль YARN Scheduler и различия между стратегиями FIFO, Capacity и Fair.
- Описывает модель вычислений MapReduce и её стадии (Map, Shuffle, Reduce).
- Характеризует работу Mapper и Reducer, их входные и выходные данные.
- Объясняет назначение стадии Shuffle и её особенности как самой ресурсоёмкой стадии MapReduce.
- Перечисляет основные компоненты каркаса MapReduce (Split, Record Reader, Input/Output Format).
- Подключается к мастер-ноде Hadoop кластера по SSH
- Создаёт S3-бакет в Object Storage и копирует в него данные такси за 2020 год
- Загружает данные из S3 в HDFS для обработки
- Пишет mapper, формирующий пары (месяц, тип оплаты) → (сумма чаевых, 1)
- Пишет reducer, агрегирующий данные и считающий среднее значение чаевых
- Добавляет фильтрацию некорректных строк в mapper
- Настраивает запуск MapReduce задания с использованием hadoop-streaming.jar
- Выводит результат в CSV-формате с колонками: Month, Payment type, Tips average amount
- Настраивает количество reducer-ов для получения одного выходного файла
- Проверяет результат с помощью команды hadoop fs -cat /user/root/output/part-00000
- Определяет назначение Hive и его архитектурные особенности
- Отличает managed таблицы от external таблиц
- Характеризует структуру и иерархию Hive (Database, Table, Partition, Bucket, View)
- Объясняет роль Metastore в хранении метаданных
- Классифицирует типы join в Hive (reduce side, map side, SMB)
- Объясняет назначение виртуальных полей и транзакций в Hive
- Сравнивает форматы хранения данных (Text, Sequence, Parquet, ORC)
- Создаёт базы данных и таблицы в Hive для работы с данными в распределённом хранилище
- Настраивает подключение к Hive через разные инструменты (CLI, интерфейсы для БД)
- Формирует SQL-запросы в HiveQL для анализа данных и применения агрегатных функций
- Выгружает результаты запросов в удобные форматы для дальнейшей обработки и анализа
- Управляет данными в объектном хранилище и интегрирует их с экосистемой Hive
- Определяет место HBase среди типов нереляционных баз данных
- Описывает модель данных HBase (RowKey, ColumnFamily, Column, Timestamp, Value)
- Объясняет назначение и особенности RowKey
- Перечисляет базовые операции HBase (get, put, scan, delete) и их назначение
- Различает роли основных компонентов архитектуры HBase (HMaster, Region Server, Zookeeper)
- Поясняет назначение WAL и MemStore в механизме записи данных
- Описывает процессы flush и compaction (minor и major) и их влияние на производительность
- Объясняет процесс recovery при сбоях в HBase
- Сравнивает HBase с другими типами баз данных (реляционными, key-value, документоориентированными, графовыми)
- Объясняет ключевые принципы работы Apache Spark и отличия его модели вычислений от MapReduce.
- Описывает устройство RDD, различает трансформации и действия, понимает роль DAG в вычислениях.
- Понимает механизмы управления памятью и кеширования, используемые для оптимизации работы Spark.
- Понимает различия между ключевыми абстракциями Spark (RDD, DataFrame, Dataset) и области их применения.
- Знает возможности Spark SQL и различные уровни API (SQL, DataFrame API, языковые API).
- Понимает роль и функции сервисов Spark Catalog и Catalyst Optimizer в работе с данными.
- Умеет интерпретировать процесс оптимизации запросов в Spark SQL от парсинга до построения физического плана.
- Настраивает окружение разработки для запуска PySpark приложений.
- Использует Spark DataFrame API для чтения, фильтрации, агрегации и объединения данных.
- Применяет группировки, сортировки и вычисления статистик для построения витрин данных.
- Интегрирует результаты обработки с внешними системами хранения (CSV, Parquet, базы данных).
- Анализирует и оптимизирует пайплайны с помощью механизмов Spark (кэширование, мониторинг Jobs).
- Знает архитектурный паттерн Message broker, его назначение и типы (point-to-point, publish/subscribe).
- Понимает принципы работы Apache Kafka: топики, партиции, сегменты, offset, репликация и хранение данных.
- Знает назначение и механизмы log retention и cleanup policy в Kafka.
- Понимает концепцию потоковой обработки данных (streaming, micro-batch) и различие между DStreams и Structured Streaming.
- Знает источники (source), приёмники (sink) и режимы триггеров (triggers) в Structured Streaming.
- Настраивает инфраструктуру Kafka и Zookeeper с помощью Docker Compose.
- Использует KafkaProducer для отправки данных из файлов в топик Kafka.
- Применяет утилиты Offset Explorer и kafkacat для мониторинга и проверки поступающих сообщений.
- Разрабатывает Spark Structured Streaming-приложение для чтения данных из Kafka и записи результатов в JSON-файлы.
- Конфигурирует триггеры и параметры потока (startingOffsets, maxOffsetsPerTrigger) для управления обработкой данных.
- Отправляет агрегированные данные обратно в Kafka и использует checkpointing для восстановления обработки после падения приложения.
- Изучает уровни профилирования приложений Spark (ОС, JVM, Job, Cluster) и их особенности.
- Сравнивает достоинства и недостатки разных подходов к профилированию.
- Анализирует требования к эффективному профилированию (метрики, визуализация, хранение, изменения в коде).
- Осваивает возможности использования time-series баз данных и инструментов визуализации для сбора и анализа метрик.
- Интерпретирует данные Spark UI и History Server для выявления проблем в работе Job.
- Понимает принципы потоковой обработки данных и роль Kafka как инструмента интеграции микросервисов и реального времени (real-time) обработки.
- Умеет развернуть и использовать Docker для локальной имитации распределённой инфраструктуры (Kafka + Spark + Postgres)
- Строит базовый data pipeline: от приёма данных из внешнего источника в Kafka до агрегации и записи итогов в витрину данных (Postgres)
- Настраивает и визуализирует метрики обработки данных, понимает, как использовать мониторинг для выявления проблем производительности и построения дашбордов
Содержание учебной дисциплины
- Airflow: обзор платформы.
- Про ETL и Airflow
- Как писать даги
- Расписание и параметры
- Гибкие пайплайны
- Дополнительные возможности Airflow
- Best Practices
- Типичные вопросы на собеседовании
- Вебинар "Обзор AirFlow 3"
- Финальный проект
- Основы Hadoop. HDFS
- Создание кластера
- Инструкция к регистрации в Yandex.cloud
- Подключение к Hadoop. Практика
- Основы Hadoop. YARN, MapReduce
- Основы Hadoop. YARN, MapReduce. Практическое задание
- Hive. SQL для Big data
- Hive. SQL для Big data. Практическое задание
- HBase. Масштабируемая колоночная база данных
- Основы Spark
- Spark SQL. Dataframes
- Основы Spark. Практическое задание
- Kafkа. Spark streaming
- Kafkа. Spark Streaming. Практика
- Отладка, профилирование и мониторинг Spark job
- Практикум по Kafka: построение витрин и визуализация метрик
Элементы контроля
- Домашнее задание к разделам (урокам) 1-26. Квиз на закрепление основных понятий уроков.128 тестовых заданий: 2 урок – 14 заданий, 3 урок – 17 заданий, 4 урок – 18 задания, 5 урок – 18 заданий, 6 урок – 17 заданий, 7 урок – 18 заданий, 16 урок – 8 задания, 21 урок - 6 заданий, 22 урок - 8 заданий, 24 урок - 10 заданий, 26 урок - 6 заданий.
- Домашнее задание к разделам (урокам) 1-24. Практические задания по дисциплине.40 практических задач: 1 урок – 13 заданий, 3 урок – 1 задание, 4 урок – 2 задания, 5 урок – 2 задания, 6 урок – 2 задания, 18 урок – 1 задание, 19 урок - 1 задание, 21 урок - 1 задание, 23 урок - 1 задание, 27 урок - 5 заданий, 29 урок - 1 задание.
- Финальный проект дисциплины в разделах (уроках) 10-15.1 финальный проект: 10 урок - 1 проект.
Промежуточная аттестация
- 2025/2026 2nd moduleИтоговая оценка соответствует сумме баллов за выполненные задания на LMS karpov.courses, приведенные к 10-балльной шкале (см. таблицу). Для каждого задания на LMS-платформе karpov.courses определён дедлайн в 14 календарных дней, после наступления которого студенту начисляется 70% от итогового балла за задание.