В этой статье будет рассказано, что такое NOSQL, его плюсы и минусы. И более глубокий анализ NOSQL Cassandra.
Тема I: NOSQL:
Что такое NOSQL?
Некоторые люди могут подумать, что это не SQL, однако на самом деле это «не только SQL». У NOSQL есть шесть важных атрибутов.
1. Отсутствие схемы
2. Архитектура без общего доступа
3. Эластичность: простота расширения емкости, загрузки и отсутствие простоев.
4 .Шардинг
5. Асинхронная репликация
6. BASE вместо ACID:
КИСЛОТА:
ACID (Atomicity, Consistency, Isolation, Durability) — это набор свойств транзакций базы данных, предназначенных для гарантии достоверности даже в случае ошибок, сбоев питания и т. д.
Теорема CAP:
мы все знаем, что распределенная система не может выполнить все эти атрибуты. И всякий раз, когда мы называем систему «распределенной системой», она как минимум имеет атрибут P.
- Согласованность: атрибут достигается транзакцией традиционной системы управления реляционными базами данных (RDBMS).
- Доступность. Служба может быть «всегда включена» и возвращать запрос в течение ограниченного времени всякий раз, когда клиенты отправляют запрос.
- Допуск к разделению: кластер продолжает функционировать, даже если существует «раздел» (разрыв связи) между двумя узлами (оба узла работают, но не могут обмениваться данными). Чтобы добиться этого, обычно мы отказываемся от консистентности.BASE:
«Bв основном, Aдоступно,Sв частом состоянии, Eв конечном итоге непротиворечиво»
Это своего рода расширение КАП. Основная идея заключается в том, что даже если мы не можем достичь строгой согласованности, по крайней мере, мы должны достичь согласованности в конечном итоге.
- В основном доступно
- Мягкое состояние: допустимо для асинхронного режима в течение некоторых периодов времени.
В конечном счете непротиворечивый. В какой-то момент он может быть несогласованным, но в конце концов он будет последовательным.
Дефект базы данных NoSQL:
- Нелегко перенести по той причине, что разные NOSQL имеют собственный API. В отличие от СУБД, у которых у всех один и тот же API «SQL».
- Без ACID. Неотъемлемая часть СУБД.
- Нет присоединения
Тема II: Кассандра
- Система хранения ключей-значений: высокая производительность.
- Распределенная сетевая служба (основная точка):Cassandra — это не БД, а распределенная сетевая служба, состоящая из множества узлов данных. Используйте структуру цикла P2P.
- Высокая масштабируемость: добавьте новый компьютер в новый кластер, и мы сможем увеличить его емкость. Кроме того, нам не нужно перезагружать весь процесс.
- Несколько центров обработки данных: чтобы избежать эффекта, когда один центр обработки данных выходит из строя.
- Поиск по диапазону: по той причине, что это система хранения ключей и значений, поэтому клиент может искать определенный диапазон данных, задав диапазон ключа.
- Сосредоточьтесь на точке доступа:
- CQL (язык запросов Cassandra): это более простой способ управления данными, когда пользователь знаком с SQL.
Приложение Кассандры:
Метод I: объединить Hadoop и Cassandra. Поместите данные в Hadoop и используйте процесс Map/Reduce, чтобы справиться с данными. А затем вставьте данные в Cassandra. Пример, Мой проект «Поисковик Твиттера»