您当前的位置 :首页 > 大数据 > 正文
YunTable的数据模型
2021-02-20 14:38:12

  作为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班招生
法国布雷斯特商学院硕士班招生
北达软EXIN网络空间与IT安全基础认证培训
北达软EXIN DevOps Professional认证培训

运营团队介绍 https://www.xiaobaoonline.com/team
相关新闻
美福百姓网