couchdb - Cassandra 和 CouchDB 有什么区别?

标签 couchdb cassandra

我正在查看这两个项目,但我看不出有什么区别

来自 Cassandra 站点:

Cassandra is a highly scalable, eventually consistent, distributed, structured key-value store...Cassandra is eventually consistent. Like BigTable, Cassandra provides a ColumnFamily-based data model richer than typical key/value systems.

来自 CouchDB 站点:

Apache CouchDB is a distributed, fault-tolerant and schema-free document-oriented database accessible via a RESTful HTTP/JSON API.

也就是说,我看到每个项目之间的具体差异为:访问方法、书面语言等,但举一个例子,当您谈论SOLR时或Sphinx您知道两者都是有很大差异的索引器,但最终都是索引器。

我可以在这里说 Cassandra 和 CouchDB 是非关系数据库,在某些情况下可以相互替代吗?

最佳答案

CouchDB 是一个文档存储。您将文档(JSON 对象)放入其中并在其中定义 View (索引)。这些对象可以是任意复杂的,具有潜在的深层结构。此外,它们不限于遵循某些一致的模式。

Cassandra 是一个不规则表键值存储。它只存储行,每行都有一组命名列,这些列被分组为具有值的族。听起来和 BigTable 很接近; BigTable 不要求每一行具有相同的结构(与 SQL 数据库不同)。这些值可能具有某种结构,但这种存储对此一无所知——它们只是字符串/字节序列。

是的,它们都是非关系数据库,并且它们的适用性可能有相当多的重叠,但它们确实具有明显不同的数据组织模型。每个模型都可能被迫模仿另一个模型,但每个模型都可以最好地解决一组不同的问题。

关于couchdb - Cassandra 和 CouchDB 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1104624/

相关文章:

cassandra - 是否可以使用 dsbulk 备份和恢复 Cassandra 集群?

database - 聚类列之一中的 Cassandra 更新值

python-3.x - 连接 Cassandra 和 Python 的有效方法(抑制警告)

mongodb - 同步应用程序

javascript - 获取表达式的 couch db 中的列表函数未计算为函数错误

couchdb - 如何在动态映射过程中将所有标量类型(数字/ bool 值/字符串等)设置为 “string”(使用river插件)

cassandra - 为什么当我添加节点时我的 cassandra 吞吐量没有提高?

c++ - 我如何知道 C++ 驱动程序是否丢失了与 Cassandra 的连接?

database - "slug"是什么意思

couchdb - 在 CouchDB 中执行一对多 "JOIN"的最佳方法