本文主要是介绍【Cassandra】数据模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
都说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。
这篇关于【Cassandra】数据模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!