• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Магистратура 2022/2023

Обработка и анализ больших массивов данных

Направление: 01.04.02. Прикладная математика и информатика
Когда читается: 2-й курс, 1, 2 модуль
Формат изучения: с онлайн-курсом
Онлайн-часы: 20
Охват аудитории: для своего кампуса
Прогр. обучения: Машинное обучение и высоконагруженные системы
Язык: русский
Кредиты: 6
Контактные часы: 26

Программа дисциплины

Аннотация

В курсе мы говорим об эволюции систем обработки данных, необходимости возникновения таких систем. Курс начинается с повторения bash, Docker и SQL, обсуждаются различные базы данных (RDBMS, NoSQL, MPP). На первых занятиях даются вводные знания по построению хранилищ данных (DWH) и автоматизации загрузки данных (ETL). Основной акцент курса направлен на системы работы с большими данными в парадигме MapReduce - Hadoop стек и Spark. Два основных приложения этих систем - обучение моделей и аналитика. Помимо этих приложений курс также покрывает подходы к работе с данными в реальном времени - Spark Structured Streaming, Kafka и Flink. Студентам предлагается применить свои навыки на практике для реализации проекта, а также решения прикладных задач инфраструктурного, архитектурного и практического характера.
Цель освоения дисциплины

Цель освоения дисциплины

  • Курс поможет студентам ориентироваться в устройстве хранения и обработки данных в организациях различного масштаба, от маленьких стартапов до огромных банков и поисковых систем, при этом студент также познакомиться с возможностями обработки этих данных, в частности создание систем машинного обучения и их использование (предоставление доступа пользователям).
Планируемые результаты обучения

Планируемые результаты обучения

  • Применение bash команд для работы с файлами, Поиск файлов в unix системе, Установка пакетов в bash, Пайплайны команд в bash, Формат Dockerfile, Запуск контейнера, Использование Docker-compose
  • Стандарт SQL, Агрегация, Window-функции, Join и оптимизации в SQL на примере Postgres, Базовый синтаксис запросов в системе MongoDB, Написание сложных запросов в MongoDB, Класс MPP решений на примере Greenplum и связанные возможности (партиционирование)
  • Знакомство с классическими концепциями DWH: Inmon и Kimball, Знакомство с концепцией Data Vault, Применение инструмента Airflow для построения ETL процесса, Знакомство с концепцией Data Lake
  • Знакомство с HDFS и умение использовать команды для работы с этой ФС, Знакомство с YARN, умение работать с UI и базовыми настройками (в частности тип планировщика), Знакомство с концепцией MapReduce, написание кода для Hadoop Streaming
  • Запуск Spark приложений, Конфигурация приложения, Работа с RDD: создание, преобразование, получение результатов, Понимание преимуществ Spark в сравнении с Hadoop MapReduce
  • Написание запросов с использованием Spark DataFrame, Написание запросов с использованием Spark SQL, Чтение плана запросов и оптимизация работы с данными, Работа с различными источниками (HDFS, S3), Задача Feature Engineering
  • Использование библиотеки SparkML для решения практических задач, Использование Broadcast и Accumulator переменных в Spark, Написание градиентного спуска на Spark, Конвертация данных в parquet и его преимущества, знакомство с другими форматами
  • MLFlow для экспериментов, Flask для HTTP API, Синхронный и асинхронный ML сервис, Docker для контейнеризации Python-сервиса
  • Обучение с помощью сервера параметров, Обучение с помощью all-reduce алгоритмов (tree-allreduce - VW, ring-allreduce - Horovod), Обучение с помощью дистилляции, Прунинг и квантизация моделей и другие методы оптимизации инференса
  • Применение LSH для нахождения близких объектов, Применение HNSW для поиска ближайших объектов
  • Понимание основных компонентов Kafka: producer, consumer, Использование Spark Streaming для чтения, обработки и записи данных в Kafka или другие базы данных
  • Java/Scala для работы с данными, Синтаксис запросов в Flink, Потоковая обработка запросов в Flink, Window function в Flink
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Универсальные технологические основы
  • SQL, NoSQL, MPP
  • DWH и ETL
  • Hadoop-стек
  • Spark RDD
  • SparkSQL и Spark DataFrame API, Feature Engineering
  • Spark ML и самописный ML на Spark
  • Эксперименты и продакшн ML моделей
  • Оптимизация работы с моделями - обучение и инференс
  • Приближенный поиск ответа
  • Потоковая обработка данных с помощью Spark Streaming и Kafka
  • Потоковая обработка данных с помощью Flink
Элементы контроля

Элементы контроля

  • неблокирующий O_weeklyHW
  • неблокирующий O_finalProject
  • неблокирующий O_optionalTasks
Промежуточная аттестация

Промежуточная аттестация

  • 2022/2023 учебный год 2 модуль
    0.3 * O_optionalTasks + 0.3 * O_finalProject + 0.4 * O_weeklyHW
Список литературы

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

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

  • Kleppmann, M. (2017). Designing Data-Intensive Applications : The Big Ideas Behind Reliable, Scalable, and Maintainable Systems. Sebastopol, CA: O’Reilly Media. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1487643

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

  • Изучаем Spark: молниеносный анализ данных / Х. Карау, Э. Конвински, П. Венделл, М. Захария. — Москва : ДМК Пресс, 2015. — 304 с. — ISBN 978-5-97060-323-9. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/90118 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.

Авторы

  • Литвишкина Ален Витальевна
  • Бардуков Анатолий Андреевич