Cassandra 是键值存储还是宽列存储?

Is Cassandra a Key value store or wide column store?

我正在为数据库新手准备一门关于 NoSQL 的课程。在网上做了很多研究,现在我陷入了将 Cassandra 归类为宽列存储还是键值存储的两难境地?或者我应该称之为二维键值存储吗?我与 CouchBase 有同样的问题。它是键值存储还是文档存储?

我正在寻找一种可靠的方法来根据 2015 年的版本对 NoSQL 数据库进行分类。感谢您的帮助。

我无法对 Cassandra 做出明智的评论(尽管我的直觉是 Wide Column 优于 K/V),但对于 Couchbase,我可能会说将其归类为文档存储有更充分的理由,鉴于 map/reduce 功能(通过视图)和即将推出的 N1QL 查询语言。还有一个令人信服的论点是它是一个 K/V 存储,但是我想说,为了在教育课程中交流竞争 NoSQL 解决方案的差异,将它归类为文档存储并不是没有道理的。

Couchbase 也可以充当分布式缓存,但是,这可能是您希望在课程中涉及的内容。

因为有一个Couchbase answer I'll jump-in on the Cassandra side. From the Cassandra GitHub page:

Cassandra is a partitioned row store. Rows are organized into tables with a required primary key.

Partitioning means that Cassandra can distribute your data across multiple machines in an application-transparent matter. Cassandra will automatically repartition as machines are added and removed from the cluster.

Row store means that like relational databases, Cassandra organizes data by rows and columns.