Hive优化之谓词下推


Hive优化之谓词下推

解释

Hive谓词下推(Predicate pushdown)

  1. 关系型数据库借鉴而来,关系型数据中谓词下推到外部数据库用以减少数据传输

  2. 基本思想:尽可能早的处理表达式

  3. 属于逻辑优化,优化器将谓词过滤下推到数据源,使物理执行跳过无关数据

  4. 参数打开设置:hive.optimize.ppd=true

两种生效形式

形式1:

select a.id,a.value1,b.value2 from table1 a
join (select b.* from table2 b where b.ds>='20181201' and b.ds<'20190101') c
on (a.id=c.id)

最推荐形式1的方法,虽然看着非常的土,但却是最好的方法

形式2:

select a.id,a.value1,b.value2 from table1 a
join table2 b on a.id=b.id
where b.ds>='20181201' and b.ds<'20190101'

使用外连接失效

select a.id,a.value1,b.value2 from table1 a
left outer join table2 b on a.id=b.id
where b.ds>='20181201' and b.ds<'20190101'

讨论

join、left join、right join、full outer join谓词下推生效与失效的情况
基于上述讨论总结一份PPD规则表

参考资料

Hadoop 过滤,映射,谓词下推基本概念
hive谓词下推的失效与生效
Hive中的Predicate Pushdown Rules(谓词下推规则)

Changelog

181203创建
181130了解谓词下推名词


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM