6

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

 1 year ago
source link: https://blog.51cto.com/u_15460453/5860670
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

精选 原创

周杰伦本人 2022-11-17 12:26:08 ©著作权

文章标签 贪心算法 数据 kylin 文章分类 Java 编程语言 yyds干货盘点 阅读数197

谁说算法不重要,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. 有不当之处欢迎批评指正。
  • 收藏
  • 评论
  • 分享
  • 举报

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK