Cassandra 和 CouchDB 有什么区别?

我看了这两个项目,我看不出有什么区别

来自 Cassandra 网站:

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

网站:

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

也就是说,我认为每个项目之间的具体差异是: 访问方法、书面语言等等,但举个例子,当你谈到 SOLR狮身人面像时,你知道它们都是索引器,有很大的差异,但最终都是索引器。

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

41924 次浏览

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

Cassandra 是一个参差不齐的表键值存储。它只存储行,每个行都有一组命名列,这些列分组成具有值的列族。它听起来非常接近 BigTable; BigTable 不要求每一行具有相同的结构(与 SQL 数据库不同)。这些值可能有一些结构,但是这种类型的存储并不了解这些结构——它们只是字符串/字节序列。

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

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

也可以利用离线复制来构建大型集群,但 CouchDB 的设计是健壮和简单的,无论它是在单个服务器、数据中心还是智能手机上运行。