全部博文(436)
分类: WINDOWS
2011-11-06 21:38:21
我们对yuntable的命令接口、数据模型进行一定程度的了解。
命令接口 现在YunCli主要提供五类命令接口:
数据模型
Bigtable是一个稀疏的、分布式的、持久化存储的多维度排序Map(alex注:对于程序员来说,Map应该不用翻译了吧。Map由key和value组成,后面我们直接使用key和value,不再另外翻译了)。Map的索引是行关键字、列关键字以及时间戳;Map中的每个value都是一个未经解析的byte数组。
作为BigTable的传承,YunTable的数据模型也非常简洁,一个Table也是有基本的Row和Column组成,但只支持Row的值或者名字作为唯一键值用来排序和之后的索引,在规模上,一个Table的规模在理论上可以达到PB级。
由于每个Table都会有成百上千的Column,而大多数查询只需得到其中少数几个Column,所以如果每次查询都将所有的Column取出来的话,这样会得不偿失,所以YunTable引入了Column Family这个特性,通过这个特性能将多个Column并为一个小组。
这样做的最大的好处是能将这些Column放在一起存储,这样不仅能提高存取效率,而且能避免读取过多的Column,还有,在Table刚创建的时候,YunTable会自动为这个Table创建一个默认Column Family,名为“default_cf”,如果数据在插入的时候,没有定义其Column Family,系统会默认其属于“default_cf”,比如:在图2中,Column名为“名字”或者“性别”的数据都属于“default_cf”,但在显示的时候,为了美观,默认不显示“default_cf”。
为了帮助数据的同步和备份,系统还为每个Cell(单元格)设置相应的Timestamp,系统会根据多个属于同一位置的Cell的Timestamp,来判断哪个Cell是最新的。