#冲刺创作新星#谁说算法不重要,Apache Kylin使用了贪心算法 原创

急需吃饭的小谢
发布于 2022-10-8 22:13
浏览
0收藏

谁说算法不重要,Apache Kylin使用了贪心算法

坚持原创,写好每一篇文章

之前的文章我们讲到Cube进行优化的几个方面,如果不进行优化的话,维度如果很多的话,产生的Cuboid就会呈现指数型增长。而Cube Planner 也提供了一种优化的手段。

Cube Planner的目标就是在众多Cuboid中挑选出查询效率最高的维度,它对Cuboid进行挑选的思想是采用了贪心算法。

贪心算法

什么是贪心算法呢?

贪心算法就是只关注当前,而不想以后,当下最有效的最优的解是哪一个,它将问题拆分成小问题,对于每个子问题求出最优解,再整合在一起就是当前这个问题的最优解。贪心算法是一种经典的算法,比如经典的背包问题就可以通过贪心算法来实现。

假如有5个维度组合,从第一个维度组合开始计算需要扫描的行数有多少,这个行数就是每个维度组合的权重。选取维度最少的维度组合。在8和23个维度的时候使用贪心算法来选取合适的维度组合列表,23个维度以上的采用的是基因算法,基因算法用到的比较少,这里就不细说了。。。

System Cube,一个特殊是Cube

对于Kylin查询的是否正常,我们可以通过System Cube来监控,这个特殊的Cube就是用来统计查询情况数据的,比如失败率有多少,查询量有多少等等。Cube Planner就可以利用它来找到合适是Cuboid,Kylin还提供了控制面板Dashboard来供用户查看具体的数据信息,按日期按查询次数等等维度。

总结

这篇文章我们讲了Cube Planner的内容,它使用贪心算法和基因算法来选取合适的维度组合,从而减少不必要的Cuboid,缩减Cube的大小和占用内存,还可以参考System Cube中的数据选取,Apache Kylin和其他应用一样,也提供了Dashboard控制面板来显示数据信息,对用户来说数据更加的直观,是一种很好的体验。

❤️ 感谢大家

如果你觉得这篇内容对你挺有有帮助的话:

  1. 欢迎关注我❤️,点赞👍🏻,评论🤤,转发🙏
  2. 关注盼盼小课堂,定期为你推送好文,还有群聊不定期抽奖活动,可以畅所欲言,与大神们一起交流,一起学习。
  3. 有不当之处欢迎批评指正。

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
分类
收藏
回复
举报
回复
    相关推荐