hive grouping sets 实现原理
Posted jiangxiaoxian
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive grouping sets 实现原理相关的知识,希望对你有一定的参考价值。
先下结论:
看了hive 1.1.0 grouping sets 实现(从源码及执行计划都可以看出与kylin实现不一样),(前提是可累加,如sum函数)他并没有像kylin一样先按照group by 全字段聚合再上卷,hive实现就是无脑复制,可以理解成是 group by grouping sets 所有组合 然后 在union 起来(grouping sets会比后者少扫描grouping sets组合份原始数据,tez和sparksql grouping sets之所以快可能是跟kylin实现差不多,先汇总再上卷来减少数据无脑复制成本,这个spark实现有空可以看看)
从执行计划就可以看出 hive grouping sets 实现相当于就一个stage,是做不到先聚合再上卷的。其实就是把原始数据复制grouping sets 组合份
以上是关于hive grouping sets 实现原理的主要内容,如果未能解决你的问题,请参考以下文章
Hive mapreduce SQL实现原理——SQL最终分解为MR任务,而group by在MR里和单词统计MR没有区别了
Hive中grouping sets与lateral view explode的用法