赞
踩
目录
在计算之前,会为每一个维度建立一个维度字典表
在HBase中存储的K是Cuboid+纬度值,其中Cuboid是指参与的维度数量,1为参与,0为不参与;纬度值指是以十六进制存储的取自于维度字典表中所对应得值。
在kylin中属于构建优化,在选择维度表时有normal和derived,derived就是使用衍生维度。
加快了计算,减少了查询得速度
为了减少计算得cuboid
同一个维度表中,有选择derived时,不会真正参与构建,参与构建的是这个表对应事实表的外键
如果两者都存在,则有normal选normal,有derived 选择事实表主键
简单得来说,在维度表得字段选用了derived后,在进行预计算时,维度表得字段并不会真正参与,参与得是对应这个维度表中事实表得外键,查询时,用外键进行替换,最后进行聚合得到查询结果
最后尽量不要使用衍生维度
属于构建优化
聚合组(Aggregation Group)是一种强大的剪枝工具
分为三种:强制维度,层级维度,联合维度
强制维度(Mandatory): 除了带有A维度的cuboid,其他都会被过滤
层级维度(Hierarchy):B要依赖A才能存在,A能单独出现,B不可以
联合维度(Joint):AB维度,要么都存在,要么都不存在
Kylin会把所有的维度按照顺序组合成一个完整的Rowkey,并且按照这个Rowkey升序排列Cuboid中所有的行
设计良好的Rowkey将更有效地完成数据的查询过滤和定位,减少IO次数,提高查询速度,维度在rowkey中的次序,对查询性能有显著的影响。
被用作where过滤的维度放在前边。
基数大的维度放在基数小的维度前边。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。