Cassandra和CouchDB有什么区别?


76

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

来自Cassandra网站:

Cassandra是一个高度可扩展的,最终一致的,分布式的,结构化的键值存储... Cassandra最终是一致的。与BigTable一样,Cassandra提供的基于ColumnFamily的数据模型比典型的键/值系统丰富。

从CouchDB网站:

Apache CouchDB是可通过RESTful HTTP / JSON API访问的分布式,容错和无模式的面向文档的数据库。

也就是说,我将每个项目之间的特定区别视为:访问方法,书面语言等。但是举个例子,当您谈论SOLRSphinx时,您知道两者都是索引器,但有很大的不同,但最后是索引器。

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

Answers:


79

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

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

是的,它们都是非关系数据库,并且在适用性上可能存在很多重叠,但是它们确实具有截然不同的数据组织模型。每个模型都可能被迫模仿另一个模型,但是每个模型将最好地映射到一组不同的问题。


34

CouchDB具有很少的开源数据库技术中提供的功能:脱机复制。CouchDB的设计使应用程序可以在网络边缘运行。即使互联网连接失败,这些应用程序仍然可用。

脱机复制也可以用于构建大型集群,但是CouchDB的设计使其既健壮又简单,无论它是在单个服务器,数据中心乃至智能手机上运行。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.