Kylin构建引擎的衍生维度

文章讨论了衍生维度在数据立方体(cube)构建中的应用,指出在以city为维度,salary为度量构建cube时,使用depart_no作为主键进行轻量级聚合。这减少了cube构建的时间,但查询时因需要字段替换和额外聚合,可能导致查询速度下降。当维度表字段增多,虽然cuboid数量减少,但查询效率可能降低,因此建议在查询工作量大时谨慎使用衍生维度。
摘要由CSDN通过智能技术生成

1. 衍生维度(derived dimension)

衍生维度的构建和查询过程

当有一张事实表和维度表如下:

事实表和维度表

我们需要以city为维度字段,sum(salary)为度量字段,进行cube的构建。因为定义了city为衍生维度字段,所以构建的时候会用维度表的主键字段depart_no替换city字段,进行cube的构建,做了一次轻量的聚合。同时kylin会在底层记录主键字段depart_no与city字段的映射关系。构建的cube如下:
构建的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的构建速度。但是查询的时候需要做字段替换和聚合操作,降低了查询速度所以如何查询时的聚合操作工作量很大,则不建议使用衍生维度

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值