Основными отличиями являются модель данных и возможности запросов.
Ключ-хранилище
Первый тип очень прост и, вероятно, не нуждается в дополнительном объяснении.
Модель данных: больше, чем хранилища ключей-значений
Хотя есть некоторые споры о правильном имени для баз данных, таких как Cassandra, я бы хотел назвать их магазины семейства столбцов . Хотя пары ключ-значение являются неотъемлемой частью Кассандры, она не ограничивается этим. Он позволяет вам вкладывать пары ключ-значение, чтобы ключ мог ссылаться на несколько пар под ключ-значение.
Вы не можете вложить пары ключ-значение бесконечно. Вы ограничены тремя уровнями (семейства столбцов) или четырьмя уровнями вложенности (семейства столбцов). Если термин «семейство столбцов» не звонит в колокольчик, см. Статью WTF - SuperColumn , это хорошее объяснение модели данных Cassandra.
Базы документов , такие как CouchDB и MongoDB, хранят целые документы в виде объектов JSON . Вы можете думать об этих объектах как о вложенных парах ключ-значение. В отличие от Cassandra, вы можете вкладывать пары ключ-значение столько раз, сколько хотите. JSON также поддерживает массивы и понимает различные типы данных, такие как строки, числа и логические значения.
1025 * Запросы *
Я полагаю, что хранилища семейства столбцов могут быть запрошены только по ключу или написанию функций уменьшения карты. Вы не можете запрашивать значения, как в базе данных SQL. Если вашему приложению требуются более сложные запросы, оно должно создавать и поддерживать индексы для доступа к нужным данным.
Базы данных документов также поддерживают запросы по ключевым функциям и функциям сокращения карт, но также позволяют вам выполнять базовые запросы по значению, такие как «Дайте мне всем пользователям более 10 сообщений». В этом случае базы данных документов более гибкие.