Введение 4
1. Введение в предметную область 5
1.1. Реляционные базы данных 6
1.2. NoSQL базы данных 7
1.3. Yahoo Cloud System Benchmark 9
1.3.1. Схема данных 9
1.3.2. Workloads 10
1.4. Выполнение запросов и измерения 10
2. Тестирование 12
2.1. Используемая схема данных 12
2.2. Адаптация Yahoo Cloud System Benchmark 12
2.3. Результаты тестирования 14
2.3.1. Среднее время отклика СУБД 15
2.3.2. Операция вставки записи 16
2.3.3. Операция чтения записи 18
2.3.4. Операция обновления записи 20
2.3.5. Операция соединения таблиц 22
2.3.6. Операция подсчета с группировкой 24
Заключение 27
Список литературы 28
В различных областях деятельности накоплено огромное количество данных, что ведет к усилению требований к их обработке и хранению, в частности к производительности систем управления данными (СУБД). Данная проблема особенно актуальна для данных, требующих глубокого анализа. В связи с этой ситуацией появляются новые подходы к построению таких систем, которые должны преодолеть недостатки существующих.
На сегодняшний день существуют два наиболее распространенных типа систем управления данными: реляционные и NoSQL СУБД, различные во многих аспектах работы. Такие кардинальные отличия в вопросах, как надежность, гибкость, согласованность данных и масштабируемость, требуют тщательного анализа различных моментов функционирования систем, в особенности производительности. Однако существующие исследования на эту тему не в полной мере охватывают вопрос производительности двух подходов, ограничиваясь сравнением операций, предоставляемых NoSQL системами. В то же время обширный спектр операций, который реализует реляционная СУБД, требует вычислений на стороне пользователя, при работе с NoSQL системой, что может привести к значительным различиям в производительности. Цель данной работы - провести исследование производительности операций СУБД этих двух типов систем.
В рамках работы было проведено сравнение реляционной и NoSQL систем управления данными на примере PostgreSQL, Apach Cassandra и Amazon DynamoDB. Основным предметом исследования является производительность операций этих систем. Результаты о производительности каждой из них были получены с помощью системы тестирования Yahoo Cloud System Bechmark(YCSB), адаптированной для нужд исследования.
Итогом работы стали данные о производительности СУБД PostgreSQL, Cassandra и DynamoDB, полученные с использованием системы тестирования YCSB. Система была расширена для выполнения тестирования расширенного набора операций над схемой данных, содержащей связи между таблицами. На основании полученных данных о производительности операций были сделаны выводы о работоспособности исследуемых СУБД.
В данной курсовой работе был произведен краткий анализ реляционных систем управления данными и NoSQL-систем, были приведены их основные отличия. Основной целью работы было сравнение производительности РСУБД и NoSQL-систем.
В ходе работы было проведено тестирование РСУБ Postgresql и NoSQL-хранилищ Cassandra и DynamoDB. Для тестирования производительности использовалась система Yahoo Cloud System Benchmark, модифицированная для работы с нетривиальной схемой данных, состоящей из нескольких связанных внешними ключами таблиц. Адаптация системы YCSB позволяет тестировать скорость выполнения сложных аналитических операций, изначально невозможных, при этом сохраняется гибкость в использовании множества различных СУБД и их настроек, объемов данных и гибкость моделирования сценариев использования СУБД, предоставляемых системой тестирования.
С помощью тестирующей системы YCSB, адаптированной для выполнения аналитических запросов, были получены данные о производительности представленных систем управления базами данных для набора различных запросов при описанной конфигурации. Полученные данные были представлены, и по ним был сделан вывод о производительности реляционной СУБД в сравнении с NoSQL системами.