• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
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% от итогового балла за задание.
Список литературы

Список литературы

Рекомендуемая основная литература

  • Hadoop : the definitive guide, White, T., 2012

Рекомендуемая дополнительная литература

  • Изучаем Spark : молниеносный анализ данных, Карау, Х., 2015

Авторы

  • Ахмедова Гюнай Интигам кызы