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 table 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 table 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谓词下推的失效与生效

Changelog

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

猜你喜欢

转载自www.cnblogs.com/junstudys/p/10056830.html
今日推荐