2025/2026




Введение в инженерию данных
Статус:
Маго-лего
Кто читает:
Департамент бизнес-информатики
Где читается:
Высшая школа бизнеса
Когда читается:
1, 2 модуль
Охват аудитории:
для всех кампусов НИУ ВШЭ
Язык:
русский
Кредиты:
6
Контактные часы:
48
Программа дисциплины
Аннотация
В данном курсе изучаются основные инструменты, которые используются в повседневной работе инженера данных. Студенты освоят навыки работы с операционной системой Linux, терминалом и изучат синтаксис Bash.
Во второй части курса рассматриваются вопросы систем контроля версий и контейнеризации.
Овладение данными навыками позволит сократить время на отладку кода, а также повысит качество разрабатываемых проектов.
Третья часть курса посвящена основам работы с базами данных на примере реляционной СУБД PostgreSQL, а также работу с массово-параллельной СУБД ClickHouse и NoSQL СУБД MongoDB. Студенты познакомятся с архитектурой баз данных, научатся составлять и анализировать план запроса. Курс также охватывает современные инструменты обработки и интеграции больших данных. Студенты познакомятся с фреймворком распределенной обработки данных Apache Spark. Будет рассмотрено, как с его помощью реализуются вычисления в кластере, а также основные принципы оптимизации запросов и работы с DataFrame API. Студенты познакомятся с ETL/ELT (Extract–Transform–Load) — построению конвейеров загрузки, преобразования и хранения данных.
Для оркестрации процессов студенты освоят работу с Apache Airflow, изучат DAG-подход, мониторинг задач и методы обеспечения отказоустойчивости рабочих процессов.
Заключительный блок рассматривает основы потоковой обработки и обмена данными с использованием Apache Kafka.
Приобретенные навыки позволят студентам эффективно автоматизировать рутинные задачи без постоянного привлечения разработчиков, что повышает их универсальность и профессиональную адаптивность в области обработки и анализа данных.
Цель освоения дисциплины
- Применять Git для совместной работы и управления версиями. Разбираться в устройстве репозитория, его организации в GitHub и выполнять операции с файловой системой (поиск, вывод, перемещение и другие действия) через командную строку. Осуществлять обмен данными между локальным компьютером и удаленным репозиторием через терминал, редактировать файлы непосредственно из терминала и уметь генерировать и использовать SSH ключи для работы с удаленными репозиториями. Понимать скриптовый язык программирования Bash и инфраструктуру вокруг него, в том числе и командные терминалы. Осваивать и применять Docker для создания, настройки и управления контейнерами, образами и средой их исполнения. Организовывать работу контейнеров с файлами, сетями, переменными окружения и внешними сервисами. Освоить базовые и продвинутые концепции работы СУБД — понять архитектуру реляционных и MPP баз данных, отличия различных типов СУБД и области их применения. Освоить работу с реляционными, MPP- и NoSQL-СУБД: выполнять базовые и продвинутые запросы, анализировать планы выполнения и использовать расширения. Применять PostgreSQL для проектирования и администрирования реляционных баз данных. Работать с ClickHouse для анализа больших объемов данных в массово-параллельной архитектуре. Применять MongoDB для хранения и обработки неструктурированных и полуструктурированных данных. Понимать архитектуру и возможности распределенной обработки данных в Apache Spark; уметь работать с DataFrame API и оптимизировать вычисления в кластере. Освоить проектирование ETL/ELT-конвейеров для интеграции данных из разных источников. Организовывать оркестрацию процессов в Apache Airflow с использованием DAG-подхода, обеспечивать мониторинг и отказоустойчивость рабочих процессов. Применять Apache Kafka для организации потоковой передачи данных, понимать устройство брокеров сообщений, топиков и партиций.
Планируемые результаты обучения
- Студенты научаться работать в операционной системе Linux, подключаться к серверу и использовать Linux для решения профессиональных задач.
- На занятии рассмотрим как взаимодействовать с процессами Linux и освоим скриптовый язык BASH. Разберем несколько примеров автоматизации рутинных задач в операционной системе Linux
- Изучаем основные функции Git, а также разбираем случаи, когда они применяются на практике
- Знакомимся с основными командами и абстракциями Docker. Разбираемся как происходит создание образов и запуск контейнеров. Добавляем возможность хранения данных
- На занятии запускаем несколько контейнеров и налаживаем связи между ними. Берем репозиторий с готовыми контейнерами, собираем их в рабочую систему. Настраиваем сеть между контейнерами
- Студенты научатся работать с реляционными базами данных, создавать и изменять структуры таблиц, писать запросы и анализировать планы их выполнения.
- Студенты освоят работу с MPP-СУБД ClickHouse, научатся писать аналитические запросы, работать с партиционированием и индексами, а также применять ClickHouse для анализа больших массивов данных.
- Студенты познакомятся с принципами работы NoSQL-СУБД, освоят основные операции с документами и коллекциями, а также научатся применять MongoDB для решения задач, в которых реляционная модель неэффективна.
- Студенты освоят основы работы с Apache Spark, научатся запускать распределенные вычисления, использовать DataFrame API и оптимизировать запросы. Получат представление о том, как Spark применяется для анализа больших данных и задач машинного обучения.
- Студенты научатся проектировать и реализовывать конвейеры загрузки и преобразования данных, выбирать подходящий сценарий (ETL или ELT) и интегрировать данные из различных источников.
- Студенты освоят основы работы с Apache Airflow, научатся создавать DAG’и, настраивать расписания и мониторить выполнение задач. Получат навыки обеспечения стабильности и отказоустойчивости процессов.
- Студенты познакомятся с основами потоковой обработки данных, научатся работать с топиками и партициями, строить распределенные системы обмена сообщениями
Содержание учебной дисциплины
- Операционная система Linux
- Мониторинг системы
- Git и GitHub
- Основы Docker
- Docker Compose и сеть
- Реляционные СУБД на примере PostgreSQL
- MPP СУБД на примере ClickHouse
- NoSQL СУБД на примере MongoDB
- Apache Spark
- ETL/ELT
- Apache Airflow
- Apache Kafka
Элементы контроля
- Домашние заданияОценка за ДЗ рассчитывается как среднее арифметическое за все ДЗ
- ПроектПроект состоит из двух частей. За часть 1 дается 4 балла, за часть 2 — 6 баллов.
- ЭкзаменЭкзамен проводится в соответствии с правилами, установленными Положением о промежуточной аттестации и текущем контроле успеваемости студентов НИУ ВШЭ
- Активность на семинарах
Промежуточная аттестация
- 2025/2026 2nd module0.1 * Активность на семинарах + 0.2 * Домашние задания + 0.4 * Проект + 0.3 * Экзамен