Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2207775
  • 博文数量: 436
  • 博客积分: 9833
  • 博客等级: 中将
  • 技术积分: 5558
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-29 10:27
文章存档

2013年(47)

2012年(79)

2011年(192)

2010年(118)

分类: WINDOWS

2011-11-06 21:38:21

我们对yuntable的命令接口、数据模型进行一定程度的了解。

命令接口 现在YunCli主要提供五类命令接口:

    1. add:这个系列命令主要用于重要数据结构的创建,主要有三大功能:其一是设置YunCli所对应的Master节点的IP地址;其二是为Master节点添加新的Region节点,这样能确保数据有地方可存;其三是创建新的Table
    2. put:这个命令的功能主要是用于添加一行新的数据。
    3. get:这个命令主要用于获取数据,主要有两种形式:其一是能获取整个Table数据的命令;其二是获取某一行的数据,也就是符合某一个Row Key的数据
    4. del:这个命令主要用于删除数据,以两种形式为主:其一是删除整行数据;其二是删除某一行某几个列数据。
    5. show:这个命令主要用于得到一些核心数据,主要有两种形式:其一是获取Master节点的主要信息;其二是获取某个Table的主要信息。

数据模型

Bigtable是一个稀疏的、分布式的、持久化存储的多维度排序Map(alex注:对于程序员来说,Map应该不用翻译了吧。Mapkeyvalue组成,后面我们直接使用keyvalue,不再另外翻译了)Map的索引是行关键字、列关键字以及时间戳;Map中的每个value都是一个未经解析的byte数组。

作为BigTable的传承,YunTable的数据模型也非常简洁,一个Table也是有基本的RowColumn组成,但只支持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,系统会根据多个属于同一位置的CellTimestamp,来判断哪个Cell是最新的。

 

 
阅读(1367) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~