您的位置:首页 > 运维架构 > Apache

Apache Kylin Cube优化

2018-01-17 11:52 120 查看
Kylin 构建Cube时优化方法如下:

1. Hierarchy(层级) Dimensions优化

在Fact table(事实表)中的维度满足层级关系时定义这几个维度为Hierarchy。一些列具有层次关系的Dimension组成一个Hierarchy,比如年,月,日组成了一个Hierarchy。

查询时指定group by year  ;  group by year , month;  group by year, month,day;都可以查询,但是如果指定group by month,day就不可以了。

2.Derived(衍生) Columns优化

在某张Look up Table(维度表)中有多个维度,改维度表对应的一个或者多个列可以和维度表的主键是一对一的,那么可以将其设置为Derived Dimension。

在Kylin内部会将其用统一的主键来替换,以此来达到降低维度组合的数据。当仍然在一定程度上会降低查询效率。

3.Mandatory(固定) Columns优化

如果每次查询的group by中都会携带某维度,那么我们可以将这个dimension设置为Mandatory,可以将维度组合减少一半。

4.Aggregation Group(聚合组) 优化

将维度分组达到降低维度组合的手段。维度的设置主要是让不出现在同一个查询中的两个维度怒计算cuboid。其实相当于把一个cube的树结构划分成了多个不同的树。在不降低

查询性能的情况下减少cuboid的计算量。

5.Joint(联合维度) Dimensions 优化

如果两个或者更多的维度要么同时出现在查询中,要么同时不出现在查询中时,这几个维度可以设置成Joint(联合维度) Dimensions.

6.Cube定义中RowKey顺序:

Mandatory 维度,Where过滤条件中出现较多的维度,高基数维度,低基数维度
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  kylin