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 如何使用 Grouping Sets

Hive 如何使用 Grouping Sets

Hive mapreduce SQL实现原理——SQL最终分解为MR任务,而group by在MR里和单词统计MR没有区别了

Hive中grouping sets与lateral view explode的用法

Hive中grouping sets与lateral view explode的用法

Hive GROUPING SETS和GROUPING__IDCUBEROLLUP