• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Введение в инженерию данных

2025/2026
Учебный год
RUS
Обучение ведется на русском языке
6
Кредиты
Статус:
Курс обязательный
Когда читается:
1-й курс, 1, 2 модуль

Преподаватели

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

Аннотация

В данном курсе изучаются основные инструменты, которые используются в повседневной работе инженера данных. Студенты освоят навыки работы с операционной системой 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 module
    0.1 * Активность на семинарах + 0.2 * Домашние задания + 0.4 * Проект + 0.3 * Экзамен
Список литературы

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

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

  • Git для профессионального программиста, Чакон, С., 2016

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

  • Базы данных : курс лекций и материалы для практических занятий, Карпова, И. П., 2013

Авторы

  • Короткин Борис Александрович
  • Паточенко Евгений Анатольевич