Статья опубликована в рамках: LXIX Международной научно-практической конференции «Вопросы технических и физико-математических наук в свете современных исследований» (Россия, г. Новосибирск, 22 ноября 2023 г.)
Наука: Информационные технологии
Секция: Системный анализ, управление и обработка информации
Скачать книгу(-и): Сборник статей конференции
дипломов
СРАВНЕНИЕ ПРОИЗВОДИТЕЛЬНОСТИ РЕЛЯЦИОННЫХ И NoSQL БАЗ ДАННЫХ ДЛЯ БОЛЬШИХ ДАННЫХ
COMPARING THE PERFORMANCE OF RELATIONAL AND NoSQL DATABASES FOR BIG DATA
Mikhail Chetverkin
Bachelor, MIREA Russian Technological University,
Russia, Moscow
Daria Vasina
Bachelor, MIREA Russian Technological University,
Russia, Moscow
АННОТАЦИЯ
Цель статьи заключается в рассмотрении и сравнении применения NoSQL и реляционных баз данных для работы с большими данными. Проведено сравнение различных типов баз данных при выполнении CRUD операций над данными разного размера. Определено, что NoSQL базы данных работают быстрее при обработке более ста тысяч записей одновременно.
ABSTRACT
The purpose of the article is to review and compare the use of NoSQL and relational databases for working with big data. A comparison was made of different types of databases when performing CRUD operations on data of different sizes. It has been determined that NoSQL databases work faster when processing more than one hundred thousand records simultaneously.
Ключевые слова: базы данных; большие данные.
Keywords: databases; big data.
Количество обрабатываемых информационными технологиями данных стремительно растет с каждым днем. С течением времени расширение объема хранилищ данных становится все более дешевым и доступным, в то время как скорость и производительность операций чтения, записи и изменения данных большого объема все еще является значительной проблемой.
В рамках данной статьи будут рассмотрены два подхода к хранению данных с точки зрения производительности:
- Реляционные базы данных.
- NoSQL базы данных или нереляционные базы данных.
Долгое время реляционные базы данных являлись самым распространенным методом хранения данных, однако в связи с жесткими ограничениями к схемам хранимых данных и скорости работы с большим количеством данных их начали заменять NoSQL базы данных.
NoSQL базы данных достигают повышенной производительности путем снижения количества ограничений, применяемых к хранимым данным. Так, например, NoSQL базы данных могут не соответствовать одному или нескольким принципам ACID, применяемых к реляционным базам данных. ACID является аббревиатурой от слов Atomicity (Атомарность), Consistency (Согласованность), Isolation (Изоляция) и Durability (Устойчивость) [2].
- Атомарность, также иногда называемая неделимостью, означает, что ни одна операция над данными не может быть выполнена частично. Другими словами, операция либо выполняется целиком, либо не выполняется вовсе.
- Согласованность или целостность данных подразумевает, что любая успешная транзакция в базе данных фиксирует только допустимые результаты.
- Изоляция означает, что параллельные транзакции не должны влиять на результат выполнения данной транзакции. Однако стоит учесть, что полная изоляция данных обычно не происходит даже в реляционных базах данных из-за значительного влияния на время работы операций над данными и допускаются различные уровни изоляции.
- Устойчивость означает, что независимо от влияния внешних факторов результат успешной транзакции останется сохраненным даже после сбоев в работе базы данных.
Другой особенностью нереляционных баз данных является способ хранения данных. По способам хранения данных NoSQL базы данных обычно разделяют на следующие типы [3]:
- Хранилище «ключ-величина». Такие базы данных по своей сути являются большими хеш-таблицами, где каждому ключу соответствует одно значение. Основными преимуществами данного способа хранения являются масштабируемость и высокая скорость получения данных.
- Колоночное хранилище. В таких базах данных каждый столбец хранится независимо от остальных столбцов. Это позволяет ускорить процесс получения данных, поскольку в запросе участвуют только непосредственно необходимые колонки.
- Графовое хранилище. Данные в таких хранилищах представлены в виде графов, то есть узлов и ребер, представляющих отношения между ними. Данный способ хранения является очень гибким и позволяет быстро проводить операции поиска по отношениям между различными объектами.
- Документоориентированное хранилище. Наиболее близкое к реляционным базам данных хранилище. Документоориентированная база данных представляет из себя набор документов, являющихся аналогом таблиц, где каждый документ имеет собственную схему и хранит определенный набор данных. Данные в документах кодируются с помощью специального языка, такого как, например, JSON (JavaScript Object Notation — Нотация объектов JavaScript) или XML (Extensible Markup Language — Расширяемый язык разметки).
Обычно выделяют четыре основные операции над данными: создание, чтение, редактирование и удаление — часто сокращаемое до CRUD (Create, Read, Update, Delete).
Согласно исследованию по сравнению CouchDB, документоориентированной NoSQL базы данных, и MySQL, реляционной базой данных, при создании тысячи новых записей CrouchDB выполнил запрос за 21 миллисекунду, в то время как MySQL выполнил его за 29 миллисекунд [1]. При добавлении миллиона записей CrouchDB выполнял запрос в среднем за 69 миллисекунд, в то время как MySQL выполнял его за 115 миллисекунд, что почти в два раза медленнее. Данный пример демонстрирует явное преимущество NoSQL баз данных в скорости добавления большого объема данных. Такое больше расхождение в скорости работы объясняется тем, что при добавлении нового ряда MySQL проверяет данные на выполнение всех ограничений, таких как ограничения индексов или внешних ключей, в то время как NoSQL проверяет лишь id добавленного объекта на уникальность.
Что касается скорости обновления данных, то по итогам исследования CrouchDB уступает MySQL в одиночных операциях обновления (297 миллисекунд для CrouchDB и 68 миллисекунд для MySQL при изменении миллиона записей), однако значительно превосходит при обновлении сразу нескольких полей (719 миллисекунд для CrouchDB и 10817 миллисекунд для MySQL при обновлении миллиона записей). При выполнении одиночных операций обновления на скорость работы CrouchDB влияет множество внешних факторов, таких как качество интернета или ошибки при передаче данных, однако при сложных обновлениях влияние этих факторов снижается.
При операциях чтения без объединения таблиц или документов, а также при операциях с объединением от одной до четырех таблиц были показаны схожие результаты, а именно: MySQL проводит операции чтения быстрее при малом количестве объектов (до десяти тысяч), в то время как CouchDB проводит операции чтения быстрее при большом количестве объектов (от ста тысяч). Что еще раз показывает, что для обработки большого количества данных NoSQL базы данных подходят лучше.
Для операций удаления CrouchDB показал лучшие результаты для любого количества данных. Итого, отсутствие необходимости в нормализации и несоответствие принципам ACID позволяет NoSQL базам данных достичь более высокой производительности при работе с большим объемом данных (более ста тысяч), что делает их более подходящим выбором при работе с большими данными. Помимо этого, не стоит забывать и о других преимуществах NoSQL для работы с большими данными, таких как гибкость в структуре хранения данных, более простое управление базой данных при разделении данных на несколько серверов и лучшая масштабируемость.
Все вышеперечисленное делает NoSQL базы данных очевидным выбором при работе с большими данными. Это объясняет, почему на использование NoSQL баз данных перешли такие крупные компании как Google (По требованию Роскомнадзора информируем, что иностранное лицо, владеющее информационными ресурсами Google является нарушителем законодательства Российской Федерации – прим. ред.), Twitter, Facebook (социальная сеть, запрещенная на территории РФ, как продукт организации Meta, признанной экстремистской – прим.ред.) и Amazon, обрабатывающие огромное количество данных ежедневно.
Список литературы:
- Cornelia A. Gyorodi Performance Analysis of NoSQL and Relational Databases with CouchDB and MySQL for Application’s Data Storage // Applied Sciences. — 2020. Vol. 10 № 23. — С. 1-21.
- Kausar, Mohammad A., Nasarm Mohammad SQL Versus NoSQL Databases to Assess Their Appropriateness for Big Data Application // Recent Advances in Computer Science and Communication — 2021. Vol. 14 № 4. — С. 1098-1108.
- Wisal Khan SQL and NoSQL Database Software Architecture Performance Analysis and Assessments — A Systematic Literature Review // BDCC. — 2023. Vol. 7 № 2. — С. 1-44.
дипломов
Оставить комментарий