Cassandra源码学习:数据模型
来源:互联网 发布:淘宝晒单福利图 编辑:程序博客网 时间:2024/03/29 17:08
Column
Column是Cassandra中最小的数据单元,它是一个三元的数据类型,包含name,value,timestamp.
Column必须有一个名称,类似于JAVA中的字符串,应用创建后可以动态地设置,Column可以在name上建索引。不要求每个name都有对应的value,value可以为空。还有一列是时间戳,标识column最新更新的时间。时间戳是由客户端应用程序提供的,请求到来时总是希望返回时间戳最新的数据,如果多个客户端同时更新相同的列,列值与最近的更新相同。
SuperColumn
ColumnFamily可以是一个常规Column,也可以是一个SuperColumn.可以将SuperColumn想象成Column的数组,它包含一个name以及一系列Column.
注意:SuperColumn本身不包含timestamp属性。使用SuperColumn有一个限制,要读取其中一个子列的值,必须把所有子列都反序列化,且不能在子列中建索引。因此SuperColumn的应用场合是子列数相对较小的情况。
ColumnFamily
相比关系型数据库,Cassandra中的ColumnFamily相当于数据库中的表,它是一个包含了许多行的结构,每一行由Key和这个Key所关联的Column组成。与关系数据库不同的是,每行不要求有相同数目的列。有两种不同的列族设计:静态和动态。
静态ColumnFamily:使用一组不变的列名,这点更像关系型数据库。如下图:
动态ColumnFamily:每一行的列名不相同,是在运行过程中动态计算和设置的。如下图:
ColumnFamily每一行可以是一系列Column,也可以是一系列SuperColumn。
Keyspace
每个Keyspace包含多个ColumnFamily,并且可以指定数据备份策略和备份数。一般一个Cassandra一个Keyspace。
下节学习:Cassandra集群通信协议-Gossip.
参考资料:
http://www.datastax.com/documentation/cassandra/1.2/cassandra/architecture/architectureIntro_c.html
http://planetcassandra.org/documentation/
- Cassandra源码学习:数据模型
- cassandra学习笔记2--Cassandra数据模型
- Cassandra学习笔记之数据模型
- Cassandra数据模型
- Cassandra数据模型
- Cassandra数据模型
- Cassandra数据模型
- Cassandra数据模型
- Cassandra数据模型
- Cassandra数据模型
- Cassandra数据模型
- Cassandra数据模型
- Cassandra数据模型
- Cassandra数据模型
- Cassandra 数据模型
- Cassandra数据模型
- Cassandra数据模型
- Cassandra 数据模型
- Using XPath to identify Web objects from Selenium WebDriver
- 笔记16--控件遇到的问题汇总
- z-index在ie7下不起作用
- [随笔]VS的相对路径
- 卡方检验(Chi square statistic)
- Cassandra源码学习:数据模型
- 我和我的输入提示--需要的树结构
- JAVA学习脚印6: java方法调用机制
- 黑马程序员_对象,构造函数以及构造代码块
- DatePicker的使用(一)
- Cassandra源码学习:数据文件分布
- windows下使用git管理github项目
- CxImage图像处理库VS2010编译和调用(静态库和动态库调用)
- 网络编程