当前位置:   article > 正文

【Apache Kylin】Cube优化_kylin cube

kylin cube

Cube优化

Apache Kylin的核心思想是根据用户的数据模型和查询样式对数据进行预计算,并在查询时直接利用预计算结果返回查询结果。Kylin具有响应时间快、查询时资源需求小,吞吐量大等的特点。

在构建Cube之前,Cube的优化手段提供了更多与数据模型或查询样式相关的信息,用于指导构建出体积更小、查询速度更快的Cube。

1.Cuboid剪枝优化

在没有采取任何措施的情况下,Kylin会对每一种维度的组合进行预计算,每种维度的组合的预计算结果被称为Cuboid。

1.1检查Cuboid数量

Apache Kylin提供了一个简单的工具,供用户检查Cube中哪些Cuboid最终被预计算了,称其为被物化(Materialized)的Cuboid。

1.2检查Cuboid大小

在Web GUI的Model页面选择一个REDAY状态的Cube,光标移动到上边时,会提示Cube的源数据大小,以及当前Cube的大小除以源数据大小的比例,称为膨胀率。Cube的膨胀率应该在0%~100%之间。

1.3空间与时间的平衡

理论上所有能用Cuboid处理的查询请求都可以使用Base Cuboid来处理,就好像所有能用Base Cuboid处理的查询请求都能通过直接读取源数据的方式处理一样。

Kylin的核心优势在于使用额外的空间存储预计算的结果,以换取查询时间的缩减。而Cube的剪枝优化则是一种试图减少额外空间占用的方法。前提是不会明显影响查询时间的缩减。

2.剪枝优化的工具

2.1使用衍生维度

衍生维度——用于在有效维度内将维度表上的非主键维度排除掉,并使用维度表的主键(其实是事实表上相应的外键)来替代它们。Kylin会在底部记录维度表主键与维度表其他维度之间的映射关系,以便在查询时能够动态地将维度表的主键“翻译”成这些非主键维度,并进行实时聚合。

2.2使用聚合组

聚合组(Aggregation Group)是一种更为强大的剪枝工具。聚合组假设一个Cube的所有维度均可以根据业务需求划分成若干组(当然也可以是一个组),由于同一个组内的维度更可能被同一个查询用到,因此会表现出更加紧密的内在关联。

对于每个分组内部的维度,用户可以使用三种可选方式定义它们之间的关系:强制维度(Mandatory)、层级维度(Hierarchy)、联合维度(Joint)。

3.并发粒度优化

当Segment中某一个Cuboid的大小超出一定的阈值时,系统会将该Cuboid的数据分片到多个分区中,以实现Cuboid数据读取的并行化,从而优化Cube的查询速度。

4.Rowkeys优化

将以减少Cuboid数量为目的的Cuboid优化统称为Cuboid剪枝。这里通过Cube的Rowkeys方面的设置来优化Cube的查询性能。

Cube的每个Cuboid中都包含了大量的行,每个行有分为Rowkeys和Measure部分。每个Cuboid数据中的Rowkeys都包含当前Cuboid中所有维度值的组合。

4.1编码

编码(Encoding)代表了该维度的值应该使用何种方式进行编码,合适的编码能够减少维度对空间的占用。目前,Kylin支持的编码方式有以下几种:Date编码,Time编码,Integer编码,Dict编码,Fixed_length编码。

4.2按维度分片

默认情况下,Cuboid的分片策略是随机的。按维度分片(Shard by Dimension)提供了一种更加高效的分片策略,那就是按照某个特定维度进行分片。简单地说,如果Cuboid中某两行的Shard by Dimension的值相同,那么无论这个Cuboid最终会被划分成多少个分片,这两行数据必然会被分配到同一个分片中。

4.3调整Rowkeys顺序

Kylin会把所有的维度按照顺序粘合成一个完整的Rowkeys,并且按照这个Rowkeys升序排列Cuboid中所有的行。在调整Rowkeys的顺序时需要注意一下几个原则:

  • 在查询中被用作过滤条件的维度有可能放在其他维度的前面
  • 将经常出现在查询中的维度放在不经常出现的维度的前面。
  • 对于基数较高的维度,如果查询会有这个维度上的过滤条件,那么将它往前调整;如果没有,则向后调整。

5.其他优化

5.1降低度量精度

5.2及时清理无用的Segment


参考资料:《Apache Kylin权威指南》

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/697663
推荐阅读
相关标签
  

闽ICP备14008679号