kylin优化的思想
作者:互联网
kylin的核心优势在于使用额外的空间存储预计算的结果,以换取查询时间的缩减。
所以我们要对额外的空间进行优化,并且在空间优化之后,cuboid无法完全命中时,对查询时间进行优化。
空间优化的思路就是试图减少额外空间占用,最常用的就是剪枝优化。去掉那些多余的cuboid,减少预聚合的数量
查询时间优化就是针对存储引擎的优化,以hbase为例,其中包括,维度值的编码优化,rowkey按维度分片,调整rowkey生成的规则,降低精度要求,segment合并和清理,并发优化等。
剪枝优化的"多余"思想是:
1.有些cuboid被查询的几率很低,甚至永远也查不到,显得多余。
2.有的cuboid的能力与其他cuboid接近,显得多余。(如该cuboid与父cuboid的基数很接近)
3.改cuboid的维度基数太高,且存在占用空间的度量如 count distinct。此时就要权衡,若不是很重要,可以去掉。
一般来说,cube的存储不应该超过源数据的10倍,如果超过了,就要进行剪枝优化。
每个cuboid都代表着一种查询样式,如果每种样式都要做好精确匹配,就会很奢侈,所以我们会牺牲掉一部分查询,使它没有精确的匹配。
这就是时间和空间的取舍了。
标签:剪枝,kylin,思想,cuboid,查询,维度,空间,优化 来源: https://www.cnblogs.com/feizaijiawenzhu/p/14507559.html