Дисциплина «Современные хранилища данных» знакомит с принципами проектирования, архитектурой и практическими инструментами аналитического хранения и обработки данных в распределенных информационных системах и комплексах интернета вещей (IoT).
В фокусе курса — переход от классических монолитных транзакционных баз данных к современному гетерогенному технологическому стеку: колоночным форматам хранения на диске (Apache Parquet) и в оперативной памяти (Apache Arrow), сверхбыстрым встраиваемым аналитическим движкам (DuckDB), документоориентированным СУБД (MongoDB), векторным базам данных для семантического поиска (pgvector, Qdrant), потоковым платформам (Apache Kafka), специализированным колоночным базам временных рядов (ClickHouse) и транзакционным открытым озерам данных (Data Lakehouse на базе Apache Iceberg).
Что даёт курс
- Понимание архитектуры современных хранилищ: знание компромиссов между строковыми (OLTP) и колоночными (OLAP) движками, механизмами сжатия и структурами индексов.
- Мастерство аналитического SQL: владение сложными оконными функциями, временными соединениями
ASOF JOIN, группировками и агрегациями на миллионных массивах телеметрии. - Работа с открытыми форматами: навыки эффективного сохранения, партиционирования и сжатия данных в Apache Parquet со снижением накладных расходов на ввод-вывод.
- Построение векторного семантического поиска: опыт генерации векторных эмбеддингов и настройки графовых индексов HNSW для поиска неструктурированных документов по смыслу.
- Организация потоковых магистралей: понимание принципов распределенного журнала фиксации Apache Kafka, семантик доставки сообщений и архитектурных шаблонов Lambda и Kappa.
- Высокоскоростная телеметрия в ClickHouse: проектирование таблиц семейства MergeTree с разреженными индексами и потоковой агрегацией через материализованные представления.
- Концепция Data Lakehouse: построение отказоустойчивых транзакционных озер данных на основе Apache Iceberg и объектных хранилищ S3/MinIO с поддержкой путешествия во времени (Time Travel).
Темы курса
| № | Тема | Ключевые концепции | Практика |
|---|---|---|---|
| 1 | Аналитическое хранилище и база приложения | OLTP против OLAP, стоимость одного вопроса, файлы против СУБД | ЛР 1: сравнение стоимости вопроса для трех способов хранения |
| 2 | Аналитический SQL | Семантика вычисления SQL, NULL, фильтрация, агрегаты, CTE | ЛР 2: аналитические выборки к витрине суточных показателей |
| 3 | Форматы колоночного хранения: Apache Parquet и Apache Arrow | Row Groups, Pages, Snappy/ZSTD, зонные карты, пушдаун предикатов, Arrow IPC | ЛР 3: сжатие телеметрии, метаданные и предикатный пушдаун |
| 4 | Векторные аналитические СУБД: архитектура DuckDB | In-process OLAP, векторизованное выполнение, Morsel parallelism, ASOF JOIN | ЛР 4: оконные функции, сопоставление временных рядов и виртуализация |
| 5 | Документоориентированные хранилища данных: MongoDB | BSON, встраивание против ссылок, индексы 2dsphere, Aggregation Pipeline | ЛР 5: геопространственный поиск и многостадийные конвейеры агрегации |
| 6 | Векторные базы данных и семантический поиск | Эмбеддинги, косинусное сходство, проклятие размерности, HNSW, pgvector | ЛР 6: семантический поиск инцидентов с графовым индексом HNSW |
| 7 | Распределённые платформы потоковых данных: Apache Kafka | Commit Log, топики, партиции, Consumer Groups, гарантии доставки, Kappa | Анализ архитектуры потоковых магистралей и семантик доставки |
| 8 | Базы данных временных рядов: ClickHouse | MergeTree, разреженный индекс, гранулы, кодеки Gorilla/DoubleDelta, Materialized Views | ЛР 8: оптимизация хранения телеметрии и предагрегация на лету |
| 9 | Архитектура современных озёр данных: Data Lakehouse | Разделение хранения и вычислений, Apache Iceberg, ACID над S3, Time Travel | Исследование метаданных Iceberg и запросов к историческим снимкам |
Учебная среда
Для выполнения практических заданий и воспроизведения примеров курса используются:
- СУБД DuckDB (консольный клиент или Python-библиотека
duckdb); - PostgreSQL 16 с расширением
pgvector; - Документоориентированная СУБД MongoDB Community Server 7.x;
- Колоночная аналитическая СУБД ClickHouse;
- Среда исполнения Python 3 с библиотеками
pandas,pyarrow,sentence-transformersиpsycopg.
Как работать с материалами
Каждая тема содержит три дополняющих друг друга раздела:
- Теория: фундаментальные концепции, архитектурные схемы, алгоритмы и математические основы рассматриваемой технологии.
- Лабораторная работа: пошаговый практикум с готовыми наборами данных телеметрии и инцидентов городской инфраструктуры.
- Дополнительно: вопросы для глубокой самопроверки, подробный глоссарий терминов, шпаргалки по командам и разбор типичных эксплуатационных ошибок.
Итоговые вопросы для самопроверки
- Почему колоночный формат хранения данных на диске позволяет многократно ускорить аналитические выборки по сравнению со строковым форматом?
- В чём состоит ключевое отличие между форматами Apache Parquet и Apache Arrow?
- Каким образом встраиваемая СУБД DuckDB достигает высокой скорости выполнения запросов без выделенного сервера?
- В каких ситуациях документоориентированная модель MongoDB предпочтительнее нормализованной реляционной схемы?
- Почему традиционные древовидные индексы неприменимы для поиска векторов высокой размерности и как алгоритм HNSW преодолевает проклятие размерности?
- За счёт каких архитектурных решений Apache Kafka способна обрабатывать миллионы событий в секунду при скромных вычислительных ресурсах?
- Как устроен разреженный индекс в ClickHouse и почему он не требует хранения позиций каждой отдельной строки таблицы?
- Какие проблемы традиционных «озёр данных» решает архитектура Data Lakehouse на базе Apache Iceberg?
Рекомендуемая литература
- Kleppmann M. Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems. — O'Reilly Media, 2017.
- Abadi D., Boncz P., Harizopoulos S. The Design and Implementation of Modern Column-Oriented Database Systems. — Foundations and Trends in Databases, 2013.
- Raasveldt M., Mühleisen H. DuckDB: an Embeddable Analytical Database. — ACM SIGMOD, 2019.
- Chodorow K. MongoDB: The Definitive Guide. — 3rd ed. — O'Reilly Media, 2020.
- Malkov Y. A., Yashunin D. A. Efficient and Robust Approximate Nearest Neighbor Search Using Hierarchical Navigable Small World Graphs. — IEEE TPAMI, 2020.
- Kreps J. I Love Logs: Event Data, Stream Processing, and Data Integration. — O'Reilly Media, 2014.
- Armbrust M. et al. Lakehouse: A New Generation of Open Platforms that Unify Data Warehousing and Advanced Analytics. — CIDR, 2021.