1. 聚合组概念
我们构建的cube选择了几个维度字段,会产生很多个cubiod,但是有的cuboid其实我们并不需要。所以就有了聚合组,聚合组定义了三种裁剪规则,可以在cube构建的时候对不需要的cuboid不进行构建,这样就可以加速cube的构建
2. 三种聚合组定义方式
2.1 强制维度(Mandatory)
如果一个维度被定义为强制维度,那么产生的cuboid必须包含该维度(强制维度自己也不能单独形成cuboid)
例如有A、B、C三个维度,不使用强制维度和使用A字段作为强制维度,产生的cuboid如下:
2.2 层级维度(Hierarchy)
如果将维度A定义为维度B的上级。则出现维度B,必须出现维度A;如果出现维度B,但没有出现A,则不进行该cuboid构建
例如年字段是月字段的上级,则出现月字段,必须出现年字段,因为单独出现月字段没有意义
假设有A、B和C三个维度,不使用层级维度和定义A字段为B字段的上级的层级维度,产生的cuboid如下:
2.3 联合维度(Joint)
定义了维度A和维度B为联合维度,则这两个维度要么一起出现,要么都不出现
假设有A、B和C三个维度,不使用联合维度,和定义A字段与B字段为联合维度,产生的cuboid如下:
3. 聚合组的使用
在Cube Designer的Advanced Setting中的Aggregation Groups区域,进行聚合组的定义
使用示例如下:
可以定义多个聚合组,最终的cuboid的个数是多个聚合组产生的cuboid的并集。比如聚合组A产生3个cuboid,聚合组B产生2个cuboid,它们有1个重叠的,则最终产生4个cuboid