В чем разница между Кассандрой и CouchDB?

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

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

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

С сайта CouchDB:

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

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

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

3 ответов


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

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

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


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

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


хорошее обсуждение этой темы можно найти в блоге Джонатана Эллиса по адресу http://spyced.blogspot.com/2008/12/couchdb-not-drinking-kool-aid.html