首页 > 云计算 > 正文

YunTable的数据模型

2010-12-24 11:05:00  来源:it168

摘要:作为BigTable的传承,YunTable的数据模型也非常简洁,一个Table也是有基本的Row和Column组成,但只支持Row的值或者名字作为唯一键值用来排序和之后的索引,在规模上,一个Table理论上可以达到PB级
关键词: YunTable数据

  作为BigTable的传承,YunTable的数据模型也非常简洁,一个Table也是有基本的Row和Column组成,但只支持Row的值或者名字作为唯一键值用来排序和之后的索引,在规模上,一个Table的规模在理论上可以达到PB级,比如:用于存储中国所有公民的个人信息或者互联网上所有网站内容的表。下面是一个简单的例子:

 

\
图1. Table的例子

  由于每个Table都会有成百上千的Column,而大多数查询只需得到其中少数几个Column,所以如果每次查询都将所有的Column取出来的话,这样会得不偿失,所以YunTable引入了Column Family这个特性,通过这个特性能将多个Column并为一个小组,比如:下图的“家庭地址”和“工作地址”都隶属于“地址”这个Column Family,这样做的最大的好处是能将这些Column放在一起存储,这样不仅能提高存取效率,而且能避免读取过多的Column,比如,可以选择只选取一个Column Family。Column Family还能用于访问权限控制,比如:“地址”这个Column Family只能让负责管理地址的部门访问。还有,在Table刚创建的时候,YunTable会自动为这个Table创建一个默认Column Family,名为“default_cf”,如果数据在插入的时候,没有定义其Column Family,系统会默认其属于“default_cf”,比如:在图2中,Column名为“名字”或者“性别”的数据都属于“default_cf”,但在显示的时候,为了美观,默认不显示“default_cf”。

 

\
图2. Column Family的例子

  虽然上面这个例子只有三个Row和五个Column,但如果这个表存储的数据不断增大的话,YunTable会将这个表切为多个Tablet(分片),并让这些Tablet分布到不同服务器上,每个Tablet都会负责一定范围的Row Name,比如,在下图中,Tablet1负责Row Name为310101至310102的数据。

 

\
图3. Tablet

  为了帮助数据的同步和备份,系统还为每个Cell(单元格)设置相应的Timestamp,系统会根据多个属于同一位置的Cell的Timestamp,来判断哪个Cell是最新的。


第三十六届CIO班招生
国际CIO认证培训
首席数据官(CDO)认证培训
责编:sr130

免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。