В чем разница между Cassandra и CouchDB?

Я смотрю на оба проекта, и я не могу увидеть разницу

с сайта Кассандры:

Cassandra - это масштабируемое, в конечном счете, последовательное, распределенное, структурированное хранилище ключевых значений... Cassandra в конечном итоге последовательна. Как и BigTable, Cassandra предоставляет модель данных на основе ColumnFamily, более богатую, чем обычные системы ключей/значений.

с сайта CouchDB:

Apache CouchDB - это распределенная, отказоустойчивая и безрисковая документально-ориентированная база данных, доступная через API RESTful HTTP/JSON.

Тем не менее, я вижу конкретные различия между каждым проектом как: методы доступа, письменные языки и т.д., но, чтобы поместить AN EXAMPLE, когда вы говорите о SOLR или Sphinx вы знаете, что оба являются индексаторами с большими различиями, но в конце являются индексаторами.

Могу ли я сказать здесь, что Cassandra и CouchDB являются нереляционными базами данных, которые в некоторых случаях могут заменить другую?

Ответ 1

CouchDB - это хранилище документов. Вы помещаете в него документы (объекты JSON) и определяете над ними представления (индексы). Объекты могут быть произвольно сложными с потенциально глубокой структурой. Кроме того, они не ограничены последовательностью некоторой согласованной схемы.

Cassandra - это хранилище ключей с измененной таблицей. Он просто хранит строки, каждый из которых имеет набор именованных столбцов, сгруппированных в семейства со значениями. Это звучит довольно близко к BigTable; BigTable не требует, чтобы каждая строка имела одну и ту же структуру (в отличие от базы данных SQL). Значения могут иметь некоторую структуру, но этот вид магазина ничего не знает об этом - это просто последовательности строк/байтов.

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

Ответ 2

CouchDB имеет функцию, присутствующую в очень немногих технологиях баз данных с открытым исходным кодом: автономная репликация. CouchDB разработан таким образом, что приложения могут работать на краю сети. Эти приложения доступны даже в случае сбоя подключения к Интернету.

Оффлайн-репликация также может быть использована для создания больших кластеров, но CouchDB разработан для надежной и простой работы, независимо от того, работает ли он на одном сервере, центре обработки данных или даже смартфоне.