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

Основы Data Engineering

Статус: Курс обязательный (Аналитика больших данных)
Когда читается: 2-й курс, 1 модуль
Охват аудитории: для своего кампуса
Язык: русский
Кредиты: 3
Контактные часы: 28

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

Аннотация

Дисциплина познакомит с теоретическими основами баз данных, включая нормализацию, теорему CAP и технологии NoSQL и изучат методы создания ETL-пайплайнов для обработки данных. Они углубят свои знания в SQL и применят их на практике. Кроме того, курс представит введение в инженерию данных через изучение реляционных баз данных на примере PostgreSQL. Студенты познакомятся с архитектурой баз данных, научатся анализировать план запроса и работать с расширениями. Приобретенные навыки позволят студентам эффективно автоматизировать рутинные задачи без необходимости привлечения разработчиков, что способствует их универсальности и профессиональной адаптивности в области обработки и анализа данных.
Цель освоения дисциплины

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

  • Освоить базовые и продвинутые концепции работы СУБД — понять архитектуру реляционных и MPP баз данных, отличия различных типов СУБД и области их применения.
  • Научиться проектировать и анализировать структуры данных — создавать ER-диаграммы, определять ключи, нормальные формы, применять нормализацию и денормализацию.
  • Приобрести навыки работы с PostgreSQL, ClickHouse и Greenplum — подключение к базам, создание и модификация объектов, загрузка и выгрузка данных, использование индексов, партиционирования и оптимизация запросов.
  • Овладеть написанием эффективных SQL-запросов — включая условия, циклы, пользовательские функции, работу с геоданными (PostGIS), соединения таблиц с выбором оптимального алгоритма join, а также особенности синтаксиса ClickHouse и Greenplum.
  • Изучить и применить методы оптимизации производительности — анализ планов выполнения запросов, выбор оптимальных стратегий соединения таблиц, использование встроенных функций, настройка вычислений для распределённых систем.
  • Получить опыт работы с большими данными в распределённых средах — обрабатывать данные с помощью Spark, работать с различными источниками (S3, PostgreSQL, Parquet, CSV), применять UDF-функции, управлять партициями и кэшированием.
  • Подготовиться к профессиональным задачам и собеседованиям — решать практические и теоретические кейсы по СУБД, PostgreSQL, ClickHouse, Spark и Greenplum, уметь объяснять архитектуру и оптимизационные подходы.
Планируемые результаты обучения

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

  • Студенты будут разбираться в устройстве ER-диаграмм
  • - Студенты смогут читать ER
  • - Студенты научатся находить ошибки в ER
  • - Научатся заполнять ER (пустая ER - с помощью квиза заполняем блоки)
  • - Будут уметь проектировать ER (ручная проверка ИЛИ самопроверка по чек-листу)
  • Студенты смогут отвечать на вопросы собеседующего о том, что такое НФ, что такое потенциальный ключ
  • Будут уметь находить потенциальный ключ
  • Научатся проверять поля на потенциальный ключ
  • Научатся проверять, что таблица в 1НФ
  • Студенты смогут отвечать на вопросы собеседующего о том, что такое 2НФ и 3НФ
  • Смогут находить первичный ключ
  • Смогут проверять, что таблица в 2НФ\1НФ\3НФ
  • Смогут отвечать на вопросы собеседующего о том, что такое нормализация и денормализация
  • Будут уметь нормализовать и денормализовать формы
  • Понимает структуру и типичный формат вопросов по базам данных на собеседованиях.
  • Умеет быстро и чётко отвечать на вопросы по ключевым темам: архитектура СУБД, проектирование БД, реляционная модель, нормализация, оптимизация запросов.
  • Разбирается в типичных подводных камнях собеседований и умеет избегать распространённых ошибок в ответах.
  • Понимает, что такое Postgres и какие у неё есть особенности
  • Сможет подключиться к Postgres из DBeather
  • Сможет подключиться из терминала
  • Сможет отправить запрос и получить ответ
  • Понимает, что такое DDL и его роль в управлении базой данных.
  • Умеет создавать и удалять таблицы в PostgreSQL.
  • Умеет загружать данные в таблицы.
  • Умеет писать DDL-сценарии с учётом особенностей PostgreSQL
  • Понимает, что такое алгоритм, циклы, условия и функции в контексте PL/pgSQL.
  • Умеет писать запросы с использованием расширений языка PostgreSQL.
  • Умеет использовать циклы, условия и пользовательские функции в запросах.
  • Умеет применять возможности PL/pgSQL для реализации алгоритмов обработки данных.
  • Понимает назначение и возможности модулей PostgreSQL.
  • Умеет писать запросы с использованием PostGIS для работы с геоданными.
  • Понимает, что такое индексы, как они работают и для чего применяются.
  • Понимает, что такое партиции, как они работают и в каких случаях используются.
  • Умеет выбирать оптимальные комбинации индексов и партиций для ускорения запросов.
  • Понимает различия между алгоритмами join: loop, hash, merge.
  • Понимает сложность выполнения каждого алгоритма.
  • Умеет применять разные типы join в зависимости от задачи.
  • Понимает, что такое план запроса и как его читать.
  • Умеет анализировать план выполнения запроса.
  • Умеет применять базовые техники оптимизации SQL-запросов.
  • Умеет использовать знания из предыдущих уроков для оптимизации планов запросов.
  • Понимает структуру и логику типичных вопросов по PostgreSQL на собеседованиях.
  • Умеет быстро и чётко объяснять ключевые концепции: архитектура PostgreSQL, типы команд (DDL, DML, TCL), транзакции и их свойства.
  • Разбирается в основных алгоритмах join, их отличиях и применении.
  • Умеет читать план выполнения запроса и приводить примеры оптимизаций.
  • Понимает, что такое ClickHouse, его архитектуру и ключевые особенности.
  • Понимает отличия ClickHouse от PostgreSQL.
  • Умеет подключаться к ClickHouse через разные клиенты
  • Понимает, какие существуют виды таблиц в ClickHouse и в каких случаях их использовать.
  • Понимает принципы работы движков таблиц.
  • Умеет создавать таблицы в ClickHouse с использованием DDL.
  • Умеет учитывать особенности создания таблиц, индексов и движков в ClickHouse.
  • Понимает отличия реализации SQL в ClickHouse от других СУБД.
  • Понимает работу встроенных функций и логических JOIN.
  • Умеет писать запросы с использованием встроенных функций и JOIN в ClickHouse.
  • Понимает, что такое план запроса в ClickHouse, индексы, партиции и особенности работы с ними.
  • Понимает, что такое «узкое место» в производительности запросов.
  • Умеет правильно партиционировать таблицы.
  • Умеет задавать первичный ключ.
  • Умеет применять алгоритмы сжатия данных.
  • Понимает типовую структуру и тематику вопросов по ClickHouse на собеседованиях.
  • Понимает, как объяснять архитектуру, ключевые компоненты и преимущества ClickHouse.
  • Умеет отвечать на вопросы по видам таблиц, индексам, партициям и алгоритмам join.
  • Умеет разбирать план запроса.
  • Понимает структуру и типовые форматы вопросов по СУБД на собеседованиях.
  • Умеет отвечать на теоретические вопросы по реляционным БД, PostgreSQL и ClickHouse.
  • Понимает ключевые отличия PostgreSQL и ClickHouse и умеет их объяснять.
  • Умеет выполнять практические задачи по SQL в PostgreSQL: создание и модификация таблиц, индексов, партиций.
  • Умеет писать и оптимизировать SQL-запросы с использованием функций, циклов, условий и разных типов join.
  • Умеет анализировать план выполнения запроса и предлагать оптимизационные меры.
  • Умеет создавать таблицы разных типов и настраивать партиционирование.
  • Умеет писать эффективные запросы с учётом особенностей движков и колоночного хранения.
  • Умеет анализировать план выполнения запроса, находить «узкие места» и оптимизировать их.
  • Понимает, как применять агрегатные функции, join и алгоритмы сжатия в ClickHouse.
  • - знает архитектуру spark и принципы его работы
  • - знает контекст применения инструмента spark - почему используем и для каких задач
  • - знает основные понятия spark: spark driver, spark executor, spark job, spark stages, spark tasks, партиция, концепция lazy evaluation, shuffle, команда action
  • - знает, что такое wide и narrow трансформации, понимает разницу между wide и narrow трансформациями
  • - знает про RDD, DataFrame, DataSet как основные структуры данных Spark
  • - Знает про инструмент Spark.SQL
  • Студент умеет писать простые и сложные запросы на Spark: - умеет создавать Spark DataFrame - умеет фильтровать Spark DataFrame - умеет сортировать Spark DataFrame - умеет группировать и агрегировать Spark DataFrame - умеет джойнить Spark DataFrame - умеет работать с колонками Spark DataFrame
  • - умеет работать с партициями (писать, читать, удалять) c помощью Spark, как использовать при записи, чтении, для оптимизации запросов
  • - умеет читать данные из parquet/csv, записывать данные в parquet/csv в s3
  • - умеет записывать и сохранять данные в csv с помощью pandas и boto3
  • - умеет читать и записывать данные в postgres;
  • - понимает общие принципы работы с БД с помощью Spark;
  • Студент понимает, как писать оптимизированные запросы на spark: - понимает как работает repartition,
  • - понимает как управлять числом партиций,
  • - знает про параметр spark.sql.shuffle.partitions и как его настраивать
  • - понимает, как пользоваться параллелизмом spark
  • Понимает типовую структуру и тематику вопросов по Apache Spark на собеседованиях.
  • Понимает архитектуру Spark, его компоненты и ключевые принципы работы.
  • Умеет объяснить разницу между wide и narrow трансформациями и их влияние на производительность.
  • Понимает работу с партициями, репартиционированием и настройкой параметра spark.sql.shuffle.partitions.
  • Умеет работать с форматами данных (Parquet, CSV), подключать внешние источники (S3, PostgreSQL).
  • Готов решать практические задания по Spark, аналогичные встречающимся на собеседованиях.
  • Понимает, какие темы по Spark встречаются на собеседованиях.
  • Умеет объяснять архитектуру Spark и работу его компонентов (RDD, DataFrame, Dataset).
  • Разбирается в трансформациях (wide и narrow), партиционировании и join.
  • Готов отвечать на теоретические вопросы и выполнять базовые тестовые задания в формате квизов.
  • Понимает принципы написания простых и оптимизированных запросов в Spark.
  • Умеет читать и анализировать код на Spark.
  • Умеет применять базовые и продвинутые приёмы оптимизации (broadcast join, caching, настройка партиций).
  • Понимает, что такое СУБД, их назначение и основные функции.
  • Понимает, по каким критериям можно сравнивать СУБД (OLTP/OLAP, архитектура, хранение данных, транзакционная модель, масштабирование, поддержка SQL, тип хранения, лицензия).
  • Умеет различать реляционные и нереляционные (NoSQL) СУБД, а также специализированные СУБД (графовые, in-memory и др.).
  • Разбирается в отличиях строчного и колоночного хранения, ACID и BASE, вертикального и горизонтального масштабирования.
  • Знает особенности и области применения PostgreSQL, Greenplum, ClickHouse, DuckDB и Redis.
  • Может аргументированно выбрать СУБД в зависимости от конкретной задачи и предъявляемых требований.
  • Понимает, для чего нужны реляционные и MPP базы данных, как они устроены, и для каких задач они подходят.
  • Понимает место БД в компаниях (банки, еком и тп).
  • Понимает, что не стоит делать с реляционными БД.
  • Понимает, как работать с основными объектами баз данных и особенностями их реализации в PostgreSQL и Greenplum
  • Знает популярные клиенты (PSQL и Dbeaver) для подключения к PostgreSQL и Greenplum.
  • Умеет подключаться и работать из командной строки.
  • Понимает, что есть в словаре данных или системном каталоге, зачем он нужен и умеет работать с ним.
  • Понимает, как СУБД обрабатывает запросы от пользователя и в чем особенности этого процесса в МРР системах
  • Умеет понимать план запроса
  • Знает, чем отличаются планы запроса в обычной СУБД и в МРР СУБД
  • Знает, на что обращать внимание в плане запроса
  • Знает о дополнительных возможностях Greenplum, дополнительных языках программирования и границах их применения.
  • Умеет работать на практике с геоданными а также с текстом в GreenPlum
  • Понимает, какие задачи можно решать с помощью Greenplum, и отличия Greenplum от других СУБД.
  • Понимает принципы работы OLTP и OLAP и знает, в каких случаях уместно использовать каждую модель.
  • Умеет применять PostGIS для работы с геоданными в Greenplum.
  • Умеет группировать и кластеризовать объекты по заданным признакам с использованием пространственных данных.
  • Разбирается в подходах к обработке больших объемов данных в параллельных вычислительных средах.
  • Умеет решать бизнес-кейсы, связанные с анализом аренды объектов и отзывов клиентов, включая обработку текстовых полей.
  • Понимает различия в работе с геоданными в Greenplum и других системах, таких как ClickHouse и PostgreSQL.
  • Готов объяснить, как выстраивается пайплайн обработки данных с учетом особенностей Greenplum.
Содержание учебной дисциплины

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

  • ER-диаграммы: базовые принципы
  • ER-диаграммы: чтение диаграмм
  • ER-диаграммы: создание диаграмм
  • Реляционная модель данных: термины и 1НФ
  • Реляционная модель данных: 2НФ и 3НФ
  • Нормализация и денормализация
  • Типичные вопросы на собеседовании
  • СУБД Postgres
  • DDL в Postgres
  • DML и TCL на PG
  • Особенности PL/pgSQL
  • Модули PostgreSQL
  • Индексы и партиции
  • Физические виды JOIN
  • Оптимизация запросов
  • Типичные вопросы на собеседовании 2
  • Что такое ClickHouse?
  • DDL в ClickHouse
  • Особенности SQL в Clickhouse
  • План запроса в Clickhouse
  • Типичные вопросы на собеседовании 3
  • Описание и тренировочные квизы
  • Техническое собеседование 1
  • Техническое собеседование 2
  • Spark: устройство, архитектура, контекст применения, основные термины
  • Простые запросы на Spark
  • Чтение и запись с помощью Spark
  • Продвинутая работа со Spark: тонкости и оптимизация запросов
  • Типичные вопросы на собеседовании 4
  • Тренировочные квизы
  • Техническое собеседование
  • Вебинар "Обзор современных СУБД"
  • Архитектура реляционных и MPP баз данных
  • Объекты баз данных. Место баз данных в компании
  • Подключение к PostgreSQL и Greenplum. Работа со словарем данных
  • Обработка запросов в традиционных и MPP СУБД
  • Обработка запросов в традиционных и MPP СУБД. Практика
  • Применение R, Python, GeoSpatial в расчетах на GreenPlum
  • Применение R, Python, GeoSpatial в расчетах на GreenPlum: Практика
  • Практикум по GreenPlum: geospatial и обработка текстовых полей
Элементы контроля

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

  • блокирующий Домашнее задание к разделам (урокам) 1-39. Квиз на закрепление основных понятий уроков
    411 тестовых заданий: 1 урок – 14 заданий, 2 урок – 12 заданий, 3 урок – 28 заданий , 5 урок – 15 заданий, 6 урок – 17 заданий, 7 урок – 8 заданий, 8 урок – 11 заданий, 9 урок – 21 задание, 10 урок – 21 задание, 11 урок – 18 заданий, 12 урок – 15 заданий, 13 урок – 15 заданий, 14 урок – 18 заданий, 15 урок – 16 заданий, 16 урок – 21 задание, 18 урок – 19 заданий, 19 урок – 19 заданий, 20 урок – 18 заданий, 21 урок – 24 задания, 23 урок – 20 заданий, 26 урок – 9 заданий, 27 урок – 3 задания, 28 урок – 4 задания, 29 урок – 8 заданий, 31 урок – 20 заданий, 35 урок – 15 заданий, 37 урок – 6 заданий, 38 урок – 1 задание, 39 урок – 5 заданий.
  • блокирующий Домашнее задание к разделам (урокам) 3-40. Практические задания по PostgreSQL, ClickHouse и Spark.
    187 практических задач: 3 урок – 4 задания , 4 урок – 2 задания, 5 урок – 3 задания, 7 урок – 2 задания, 9 урок – 9 заданий, 10 урок – 9 заданий, 11 урок – 5 заданий, 12 урок – 12 заданий, 13 урок – 11 заданий, 14 урок – 10 заданий, 15 урок – 3 задания, 18 урок – 3 задания, 19 урок – 12 заданий, 20 урок – 11 заданий, 21 урок – 2 задания, 24 урок – 29 заданий, 25 урок – 14 заданий, 27 урок – 7 заданий, 28 урок – 4 задания, 29 урок – 4 задания, 32 урок – 3 задания, 36 урок – 8 заданий, 38 урок – 11 заданий, 40 урок – 5 заданий.
Промежуточная аттестация

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

  • 2025/2026 1st module
    Итоговая оценка соответствует сумме баллов за выполненные задания на LMS karpov.courses, приведенные к 10-балльной шкале (см. таблицу). Для каждого задания на LMS-платформе karpov.courses определён дедлайн в 14 календарных дней, после наступления которого студенту начисляется 70% от итогового балла за задание.
Список литературы

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

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

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

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

  • Руководство по реляционной СУБД DB2 : руководство для пользователей программного продукта "IBN Database 2" фирмы IBM, Дейт, К., 1988

Авторы

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