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