Эволюция NoSQL, основные преимущества перед SQL

Нет сомнений в том, что методы работы веб-приложений с данными существенно изменились за последнее десятилетие. Собирается и используется всё больше данных, и всё больше пользователей одновременно получают доступ к этим данным. Это означает, что масштабируемость и производительность являются более сложной задачей, чем для реляционных баз данных, основанных на схеме, чьё масштабирование сложнее.

Проблема масштабируемости SQL была признана интернет-компаниями с огромными растущими потребностями в данных и инфраструктуре, такими как Google, Amazon и Facebook. Они придумали свои собственные решения проблемы – такие технологии, как BigTable, DynamoDB и Cassandra.

Этот растущий интерес привел к появлению ряда систем управления базами данных NoSQL (СУБД) с упором на производительность, надежность и согласованность. Ряд уже существующих структур индексирования был пересмотрен и усовершенствован с целью повышения производительности поиска и операций чтения.

Во-первых, существовали запатентованные (с закрытым исходным кодом) типы баз данных NoSQL, разработанные крупными компаниями для удовлетворения их конкретных потребностей, такие как Bigtable от Google, которая считается первой системой NoSQL, и DynamoDB от Amazon.

Успех этих проприетарных систем положил начало разработке ряда аналогичных систем баз данных с открытым исходным кодом и проприетарных систем, наиболее популярными из которых являются Hypertable, Cassandra, MongoDB, DynamoDB, HBase и Redis.

Что отличает NoSQL?

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

NoSQL и обычная реляционная база данных

Это означает, что базы данных NoSQL не имеют фиксированной структуры таблиц, как в реляционных базах данных.

Преимущества NoSQL

Базы данных NoSQL имеют много преимуществ по сравнению с традиционными реляционными базами данных.

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

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

Обычно каждое значение в базе данных обозначается ключом. Некоторые хранилища баз данных NoSQL также позволяют разработчикам хранить сериализованные объекты в базе данных, а не только простые строковые значения.

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

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

Недостатки NoSQL баз данных

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

Во-первых, большинство баз данных NoSQL не заточены на надёжность в той мере, в которой это относится к традиционным базам данных. Такие характеристики как атомарность, консистентность, изоляция и стойкость данных в системах NoSQL принесены в жертву производительности и масштабируемости.

Для поддержки функций надежности и согласованности разработчикам необходимо реализовать собственный проприетарный код, что усложняет работу системы. Это ограничивает использование NoSQL в областях, где важна безопасность и надёжность транзакции, таких как банковские системы.

Так же NoSQL базы данных не совместимы с запросами SQL. Это означает, что необходимо вручную переписывать запросы для работы с этим типом баз данных.

NoSQL против реляционных баз данных

Давайте сравним NoSQL с обычной базой данных:

Характеристика

База данных NoSQL

Реляционная база данных

Производительность

Высокая

Низкая

Надёжность

Низкая

Хорошая

Доступность

Хорошая

Хорошая

Консистентность данных

Плохая

Хорошая

Размер данных

От больших до огромных

От средних до больших

Масштабирование

Лёгкое, дешёвое

Лёгкое, дорогое

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



Похожие статьи:

Обзор дисковой корзины Exegate HS335-02 для LFF накопителей

Это одна из самых доступных Hot-Swap корзин на рынке, но вместе с тем она удивительно продумана в мелочах, особенно в том, что касается надёжности и простоты обслуживания в сервере. Далеко не всегда в вопросах выбора корзины нуж...

Проблемы утилизации носителей данных в ЦОДах

Недавний опрос экспертов по стиранию данных Blancco показывает, что большинство организаций не могут правильно утилизировать списанные диски, рискуя штрафами за разглашение информации о клиентах и сотрудниках или тратя сотни тыс...

Тренды хранения данных в 2019 году - прогноз Toshiba Electronics

Объем хранимых в мире данных не только продолжает расти, но и растет быстрее, чем прогнозировалось. Ожидалось, что доля данных, хранящихся на флэш- и твердотельных накопителях, увеличится, а количество данных, хранящихся на жест...

Seagate Exos 10E2400 - тестируем гибридный SFF диск расширенной методикой

Этот гибридный жёсткий диск объёмом 2.4 Тб для серверов интересен тем, что поддерживает энергонезависимый кэш записи и имеет 16-гигабайтный NAND буфер чтения. Мы протестировали его, чтобы посмотреть, как кэш ускоряет приложения,...