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 組合份


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM