当前位置:   article > 正文

Kylin的构建原理及简单优化 二_kylin rowkeys优化

kylin rowkeys优化

目录

5 Cube存储原理

6 使用衍生维度(derived dimension) 

7 使用聚合组(Aggregation group)

 8 Row Key优化


Cube存储原理

在计算之前,会为每一个维度建立一个维度字典表

 在HBase中存储的K是Cuboid+纬度值,其中Cuboid是指参与的维度数量,1为参与,0为不参与;纬度值指是以十六进制存储的取自于维度字典表中所对应得值。

6 使用衍生维度(derived dimension) 

在kylin中属于构建优化,在选择维度表时有normal和derived,derived就是使用衍生维度。

加快了计算,减少了查询得速度

为了减少计算得cuboid

同一个维度表中,有选择derived时,不会真正参与构建,参与构建的是这个表对应事实表的外键

如果两者都存在,则有normal选normal,有derived 选择事实表主键

简单得来说,在维度表得字段选用了derived后,在进行预计算时,维度表得字段并不会真正参与,参与得是对应这个维度表中事实表得外键,查询时,用外键进行替换,最后进行聚合得到查询结果

最后尽量不要使用衍生维度

7 使用聚合组(Aggregation group)

属于构建优化

聚合组(Aggregation Group)是一种强大的剪枝工具

分为三种:强制维度,层级维度,联合维度

强制维度(Mandatory): 除了带有A维度的cuboid,其他都会被过滤

层级维度(Hierarchy):B要依赖A才能存在,A能单独出现,B不可以 

 

联合维度(Joint):AB维度,要么都存在,要么都不存在 

 8 Row Key优化

 

Kylin会把所有的维度按照顺序组合成一个完整的Rowkey,并且按照这个Rowkey升序排列Cuboid中所有的行

设计良好的Rowkey将更有效地完成数据的查询过滤和定位,减少IO次数,提高查询速度,维度在rowkey中的次序,对查询性能有显著的影响。

被用作where过滤的维度放在前边。

基数大的维度放在基数小的维度前边。

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/697636
推荐阅读
  

闽ICP备14008679号