【Cassandra】数据模型

来源:互联网 发布:海马玩mac版安装失败 编辑:程序博客网 时间:2024/04/26 04:56

都说Cassandra是列族数据库,这里的列族到底什么含义。

个人觉得,这个“列族”更侧重于数据模型,也就是Cassandra中的Column和columnfamily的概念。它其实只是Cassandra中的一个名词或者术语,并不是我们通常理解的关系型数据库的中列。以下是Cassadra中术语:

Column:其实是某一行数据中的某一列,类似一个键值对,包括<name, value, timestamp>三部分。

每一行数据其实就是一个Column的数组,这样每一行的数据的列名其实是不相关的。所以,概念上,Cassandra本质上还是按照行来存储的。所谓的“列族数据库”更多的是指Cassandra数据库中的column和columnfamily概念。每一行使用一个key来唯一标识。

ColumnFamily指的是若干行的集合。


还有SuperColumn,supercolumn的key对应的值是若干个column,相当于嵌套column。

keyspace,是若干个columnfamily的集合。

这样其实很好理解了,我们可以和关系数据库来一个对照:

行的概念一样,关系中的列是cassandra中的列,关系中的表是cassandra的columnfamily,关系中的库是cassandra中的keyspace。