77

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

来自卡桑德拉网站:

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

来自 CouchDB 网站:

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

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

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

4

2 回答 2

82

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

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

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

于 2009-07-11T14:57:03.750 回答
35

CouchDB 有一个很少出现在开源数据库技术中的特性:离线复制。CouchDB 旨在使应用程序可以在网络边缘运行。即使互联网连接失败,这些应用程序也可用。

离线复制也可以用来构建大型集群,但无论是在单个服务器、数据中心甚至智能手机上运行,​​CouchDB 都被设计为强大而简单。

于 2009-09-23T20:44:07.360 回答