Hbase宽表设计注意事项

请问这个课程中宽表的设计中列的概念是columnfamily吗?如果不是,而是column怎么会提高检索效率?
1461562407097.png

fish - Hadooper

赞同来自: Hagrid mopishv0

原来这图有这么特殊的来路,下次上传一个相关文档呗,让我好理解些,我将文档帖附件里了。   图中上半部分所描述的Column,是个概念上的东西,可以理解为,他是HBase中的Qualifier。 上半部分的表,是一个设计的逻辑视图,其含义是,将深色的那行:
1461727580344.png
去掉,替换成红色部分,列的名称(+2)表示原有被删掉的那个记录,相对于上一条记录来说,key增加了2,值为3,直接放到了跟(+2)这个对应的cell上(同属于第一行)。   因此,从这个视图看,感觉上仿佛节省了存储,但,这是错误的(图中标了个Misleading)。因为,在HBase的存储模型当中,图的上半部分这个样子的结构,会被储存成下半部分这个样子:
1461727774338.png
  即,看上去好像删掉了一行,省掉了一个长长的key的存储,但实际到了HBase里面,即使对于同一个key的多个列的值,这个key是被重复存储的。就是那个1234567890。   是否记得HBase的存储视图:
1461727979829.png
这里的每个value,在存储的时候,都与其相对应的key放到一起的,也就是说,key是以多份复制的方式存储在HFile中,一点都不节省存储。

wangxiaolei

赞同来自:

将所有的关联信息都保存在同一行中–称之为宽表设计

Hagrid

赞同来自:

@fish 请老师回到一下。

宗永芳gfd

赞同来自:

关于opentsdb的课程在那?可以推荐下吗  

要回复问题请先登录注册