目录
- 1. 衍生维度(derived dimension)
1. 衍生维度(derived dimension)
衍生维度的构建和查询过程:
当有一张事实表和维度表如下:
我们需要以city为维度字段,sum(salary)为度量字段,进行cube的构建。因为定义了city为衍生维度字段,所以构建的时候会用维度表的主键字段depart_no替换city字段,进行cube的构建,做了一次轻量的聚合。同时kylin会在底层记录主键字段depart_no与city字段的映射关系。构建的cube如下:
进行select city, sum(salary) from employee a join department b on a.depart_no = b.depart_no group by city
查询的时候,会先用city字段替换主键字段depart_no,替换后的表如下:
再对替换后的表,进行最终的结果聚合
衍生维度的总结:
所以当维度表有多个字段进行cube的构建,比如3个字段,则cuboid的个数由7个变成1个。加快了cube的构建速度。但是查询的时候需要做字段替换和聚合操作,降低了查询速度。所以如何查询时的聚合操作工作量很大,则不建议使用衍生维度