Сравнение производительности современных NoSQL баз данных с реляционной базой данных

Оценка производительности программного обеспечения, используемого в outsource-компаниях. Сравнение быстродействия системы с реляционной и нереляционной базами данных. Технические характеристики тестового сервера. Определение скорости выполнения запросов.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 04.02.2021
Размер файла 373,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://allbest.ru

Санкт-Петербургский архитектурно-строительный университет

Строительный факультет Кафедра информационных технологий

Сравнение производительности современных NoSQL баз данных с реляционной базой данных Sybase ASA 9.02

Буйволов Евгений Алексеевич магистр

прикладной математики и информатики

г. Санкт-Петербург

Аннотация

До сих пор в outsource-компаниях встречается устаревшее программное обеспечение, которое может работать не один десяток лет, будучи единожды настроенным. Вопрос эффективности подобных программных продуктов может встать только при сбое в работе. Данная статья направлена на демонстрацию разницы в производительности устаревшей реляционной базы данных Sybase Adaptive Server Anywhere 9.02 2003 года выпуска и популярных NoSQL баз данных Cassandra, MongoDB и ElasticSearch при работе с денормализованными данными.

Ключевые слова: NoSQL, базы данных, тестирование производительности, программное обеспечение, DBA.

Зачастую в компаниях настроенные однажды программные продукты могут работать десятилетиями. Без обновления программного обеспечения компании могут начать терять эффективность выполнения обработки данных. Когда речь заходит о данных, то основным условием быстрой обработки является хранилище, зачастую - база данных (БД). Необходимость настройки и администрирования БД вынуждает компании привлекать администраторов БД.

Небольшие компании не всегда имеют подобную возможность, т.к. данная профессия является одной из самых востребованных в области IT. В таких случаях транспортировка данных может быть настроена на скорую руку. Схема не проектируется, связи между данными не устанавливаются, в результате данные хранятся в виде, не удовлетворяющем нормальным формам, а скорость доступа к данным обеспечивается посредством индексирования.

Отсутствие возможности проектирования БД или чрезвычайная сложность проектирования логичным образом привела к появлению NoSQL БД, в которых структура данных может быть не определена изначально, и упор делается на скорость доступа и отказоустойчивость в рамках микросервисной архитектуры, пришедшей на смену монолиту. В [1] приводится сравнительный анализ реляционной и нереляционной модели хранения служебной информации. Упоминается, что в настоящее время нереляционные БД используются для хранения слабоструктурированных данных.

В статье приводится анализ быстродействия системы с использованием реляционной и нереляционной БД. Определяется модель данных на основе принципов Кодда: множество информационных конструкций, множество допустимых операций, множество ограничений, наложенных на информационные конструкции.

В рамках статьи рассматривается логическая модель БД, упоминаются документоориентированные СУБД. В статье проводится эксперимент с комплексом, быстродействие которого зависит от быстродействия словаря, содержащего служебную информацию. Эксперимент проводился при замере производительности CRUD-операций над словарем. Были построены регрессионные модели.

В качестве реализации рассматриваются реляционные MySQL 5.7, PostgreSQL 9.3, и документоориентированная MongoDB 3.6. В результате проведенного эксперимента MongoDB показала наилучшие результаты производительности для конкретного типа задачи. Помимо этого, автор указывает на возможность параллельной обработки данных на основе MapReduce. В [2] проводится исследование реляционных и нереляционных БД, приводится информация о том, что реляционные БД используют при необходимости консистентности данных и транзакционного контроля, подчиняются принципам ACID (атомарность, согласованность, изолированность, устойчивость), а аналитические, агрегированные или метаданные могут храниться в NoSQL, и в целом выбор БД определяет эффективность системы.

В статье приводится информация об экспоненциальном росте информации на цифровых носителях. В качестве решения проблемы в статье описывается использование NoSQL. Изначально термин использовался реляционную систему управления БД, не использующую стандарты SQL. В дальнейшем термин NoSQL стал относиться и к нереляционным БД. NoSQL стали первой альтернативной реляционным БД, отличались отказоустойчивостью, масштабируемостью, доступностью.

Технология предназначалась для гибкой схемы данных, распределенной архитектуры, использование «Не только SQL» языков. Во главу угла ставится подход BASE, который заключается в:

1. Базовой доступности (запрос завершается с определенным статусом)

2. Гибком состоянии (состояние системы может изменяться со временем для обеспечения согласованности данных)

3. Итоговой согласованности данных (данные могут быть несогласованными, но в конечном счете будут приведены к согласованию)

В соответствии с теоремой CAP в распределенных вычислительных системах одновременно может быть гарантирована работа двух свойств из трех: быстрый доступ, согласованность данных, устойчивость к разделению [3]. NoSQL применяется в BigData, при большой производительности записи (inmemory системы), для быстрого доступа по ключу, кэширования в памяти, доступность без учета уровней изоляции транзакций (в виду их отсутствия), при необходимости параллельных вычислений, например, используя MapReduce.

В статье [4] также приведен список самых популярных БД на 2018 год. Реляционные БД все так же занимают лидирующие позиции, среди них Oracle, MySQL, MSSQL, PostgreSQL. На пятом месте рейтинга присутствует документоориентированная MongoDB. Также дается пример разницы представлений одних и тех же данных, и указывается на определения полей для таблицы в Oracle, и на определение полей внутри документа в MongoDB. В первом случае данные хранятся в таблице, во втором в коллекции в JSON-формате.

Таким образом MongoDB не требует преобразования данных для разработки клиент- серверных приложений (только на уровне DTO), структура данных может быть произвольной и заключать в себе любые типы связей. В алгоритме описания миграции данных с реляционной БД в нереляционную стоит описать только сериализацию в JSON и запись в нереляционную БД. Существует достаточно большое количество статей, посвященных обзору типов хранения данных в нереляционных БД, подчиняющихся принципам NoSQL, стоит отметить следующие типы:

1. Ключ-значение (Map) - хэш таблица, предоставляющая доступ к значению по ключу, среди нереляционных БД можно выделить Redius, Memcached, Riak [5].

2. Документоориентированные - хранение иерархических систем данных. MongoDB, CouchDB, Elasticsearch.

3. Колоночные - хранят данные не в строках, а в колонках. К плюсам можно отнести эффективность сжатия, т.к.каждая колонка является таблицей определенного типа. HBase, Cassandra, Vertica.

4. Графовые. Neo4j, OrientDB.

Важнейшим показателем работы системы является её производительность, которая в первую очередь будет зависеть от самого нижнего уровня взаимодействия с данными. При переходе на NoSQL необходимо понимать характер задач и подбирать решение под данные. В [6] приведен сравнительный анализ производительности NoSQL и реляционных БД на примере работы с гео-данными. Предполагается, что NoSQL, как системы, разрабатываемы для параллельных вычислений и работы с данными различной структуры при работе с геоданными дадут прирост в производительности.

В ходе эксперимента сравниваются MongoDB, Cassandra, CouchDB и PostgreSQL (расширение PostGIS), используя три различных набора данных. В результате тестирования при запросах по атрибуту самой быстрой БД оказалась MongoDB, в то время как самой медленной - CouchDB. В настоящий момент существует более двухсот NoSQL решений. В рамках данной статьи рассмотрено сравнение быстродействия самых популярных и быстрых NoSQL БД (Cassandra 3.11.6, MongoDB 4.2.0, ElasticSearch 7.7.0) с реляционной БД Sybase Adaptive Server Anywhere 9.02 2003 года выпуска для подчеркивания разницы в производительности БД различных декад.

Техническая информация о тестовом стенде

В качестве тестового сервера используется компьютер с процессором AMD Ryzen 2600 с частотой 3.9 ГГц с отключенным TurboBoost (для предотвращения скачков температуры на процессоре), 16 Гб одноранговой оперативной памяти (скорость записи/чтения около 21 Гб/с), работающей на частоте 2800 МГц на таймингах 16-15-15-36. На компьютере установлен Oracle VirtualBox.

Используется тип подключения NAT, тип адаптера virtio-net. Все БД тестировались на Ubuntu 18.04 с установленным Docker. Порты пробрасывались в настройках виртуальной машины.

Виртуальная машина использует SSD Intel 660p NVMe PCIe M.2 512GB со скоростью 1.5 Гб/с на чтение и 950 Мб на запись. Docker-образа Sybase ASA 9.02 не существует, поэтому БД была установлена на родную операционную систему тестового компьютера. Используется виртуализация AMD-V. Для каждой БД реализовано клиентское Java-приложение с использованием Java Spring фрэймворка в контексте микросервисной архитектуры.

Данные записывались из ОЗУ в БД. Тестирование проводилось на двух сетах данных: последовательности наборов пар ключ-значение, состоящих из двух элементов и из тридцати шести. Каждый сет данных состоял из 547823 набора пар ключ-значение.

Критериями тестирования являются:

1. Количество вставок в секунду в однопоточном режиме.

2. Количество вставок в секунду в многопоточном режиме.

3. Скорость выполнения запроса типа select * from entity where field = value

4. Скорость выполнения запроса типа select * from entity where filed like `%val%'

Результаты тестирования получены путем множественных прогонов данных с накоплением (до трех итераций), после чего количество исходных записей делилось на время выполнения вставки (миллисекунды). Перед каждым тестом все неиспользуемые docker-контейнеры удалялись, БД очищались, а также освобождалось место на SSD.

В качестве итогового значения бралось усредненное значение скорости записи и чтения (из трех попыток). Для bulk-вставки бралось максимальное значение вставки в зависимости от размера пакета. Результаты тестирования в графическом виде представлены на рисунках 1-3.

Рис. 1. Скорость записи данных через средства, предоставляемые БД

реляционный база программный быстродействие

Рис. 2. Скорость чтения данных на соответствие. Имитирована высокая нагрузка

Рис. 3. Скорость чтения данных на вхождение. Имитирована высокая нагрузка

Заключение

В результате работы получены данные о быстродействии трех популярных NoSQL БД и устаревшей реляционной БД. На основе полученных результатов можно сделать вывод о необходимости обновления ПО.

Также стоит отметить, что реализация многопоточного обращения через асинхронное выполнение инструкций в Cassandra лишь тормозит запись. ElasticSearch показал самое быстрое время чтения. MongoDB является самой быстрой БД при использовании bulk-загрузки. Cassandra является сбалансированным решением, подходящим под различные задачи.

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

1. Тимофеева Н.Е., Дмитриева К.А. Сравнительный анализ реляционной и нереляционной модели хранения служебной информации централизованной распределенной базы данных // Вестник российского нового университета. Серия: сложные системы, модели, анализ и управление, 2019. № 1. C. 66-74.

2. Губа Е.А., Брысин О.А. Объектно-ориентированные базы данных как основа формирования баз медико-биологических знаний // Информатика и прикладная математика: межвузовский сборник научных трудов, 2010. № 16. C. 21-24.

3. Королева Ю.А, Маслова В.О., Козлова В.К. Разработка концепции миграции данных между реляционными и нереляционными системами БД // Программные продукты и системы, 2019. № 1. C. 63-67.

4. Всё, что вы не знали о CAP теореме. [Электронный ресурс]. Режим доступа: https://habr.com/ru/post/328792/ (дата обращения: 23.10.2019).

5. Савоськин И.В., Фирсов А.О. Исследование способов применения NoSQL и реляционных баз данных // E-SCIO, 2019. № 6. C. 101-108.

6. Hasan M. Performances analysis of NoSQL and relational databases for analyzing GeoJSON spatial data // Перспективы науки, 2019. № 7. C. 40-42.

Размещено на Allbest.ru


Подобные документы

  • Сравнение скорости выполнения запросов, построенных на таблицах с использованием типов char и varchar. Настройка окружения, создание баз данных, разработка приложения. Проведение экспериментов по видам запросов: на вставку данных, их обновление и выборку.

    курсовая работа [666,8 K], добавлен 12.08.2011

  • Обоснование необходимости систем управления базами данных на предприятиях. Особенности разработки программного обеспечения по управлению базой данных, обеспечивающего просмотр, редактирование, вставку записей базы данных, формирование запросов и отчетов.

    курсовая работа [1,5 M], добавлен 23.01.2010

  • Характеристика системы управления базами данных. Принципы классификации СУБД. NoSQL как ряд подходов, проектов, направленных на реализацию моделей баз данных. Методологические обоснования подхода NoSQL. Описание некоторых СУБД из данного движения.

    реферат [18,1 K], добавлен 06.10.2011

  • Процесс создания и определение задач полнофункциональной системы управления базами данных. Разработка структуры таблиц, хранящих данные и формирование запросов. Построение форм для ввода и просмотра информации в запросах и создание необходимых отчетов.

    курсовая работа [1,1 M], добавлен 11.09.2010

  • Понятие "база данных", общая классификация. Мировой рынок систем управления базами данных по итогам 2007 года. Oracle: общее понятие, функции. Технология Active Data Guard. Опции Total Recall. Сравнение масштабируемости. Сравнение работы кластеров.

    курсовая работа [676,0 K], добавлен 19.05.2015

  • Базы данных с двумерными файлами и реляционные системы управления базами данных (СУБД). Создание базы данных и обработка запросов к ним с помощью СУБД. Основные типы баз данных. Базовые понятия реляционных баз данных. Фундаментальные свойства отношений.

    реферат [57,1 K], добавлен 20.12.2010

  • Теоретические сведения и основные понятия баз данных. Системы управления базами данных: состав, структура, безопасность, режимы работы, объекты. Работа с базами данных в OpenOffice.Org BASE: создание таблиц, связей, запросов с помощью мастера запросов.

    курсовая работа [3,2 M], добавлен 28.04.2011

  • Определенная логическая структура данных, которые хранятся в базе данных. Основные модели данных. Элементы реляционной модели данных. Пример использования внешних ключей. Основные требования, предъявляемые к отношениям реляционной модели данных.

    презентация [11,7 K], добавлен 14.10.2013

  • Информационная система на базе компьютера. Основное отличие системы с базой данных от традиционной файловой системы. Построение концептуальной модели, реляционной модели. Нормализация. Проектирование базы данных в ACCESS. Создание SQL запросов.

    курсовая работа [38,5 K], добавлен 06.11.2008

  • Проектирование автоматизированной информационной системы, позволяющей оформлять заказы на продажу керамической плитки. Разработка реляционной модели данных. Структура и содержание таблиц базы данных, формирование запросов к ней и назначение ее форм.

    курсовая работа [4,9 M], добавлен 26.07.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.