Kylin的Cube构建

了解下Cube是怎么样的一个构建机制

前提

1
2
3
4
5
6
7
8
9
10
了解维度与度量.维度为分析数据的角度,度量为数据的统计值.
一个Cube根据维度会生成对应的Cuboid(和groupingset类似)
e.g:
维度:时间(a),商店(b),商品(c)
度量:销售额
维度组合: 2^3种组合
0D:1种(直接统计度量值)
1D:3种(a,b,c)
2D:3种((a,b),(a,c),(b,c))
3D:1种(原始数据(a,b,c))

构建算法

1
2
3
4
5
逐层构建算法(layer)
从3D到0D,计算可以依赖上层的计算结果,减少计算量
但是如果维度多,任务调度需要额外的资源
快速构建算法(inmem)
利用内存先计算出所有维度组合,再通过执行引擎统一计算出来结果