博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hive优化之谓词下推
阅读量:6457 次
发布时间:2019-06-23

本文共 748 字,大约阅读时间需要 2 分钟。

Hive优化之谓词下推

解释

Hive谓词下推(Predicate pushdown)

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

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

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

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

两种生效形式

形式1:

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

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

形式2:

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

使用外连接失效

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

讨论

join、left join、right join、full outer join谓词下推生效与失效的情况

基于上述讨论总结一份PPD规则表

参考资料

Changelog

181203创建

181130了解谓词下推名词

转载于:https://www.cnblogs.com/junstudys/p/10056830.html

你可能感兴趣的文章
控制圈复杂度的9种重构技术总结
查看>>
数据分析--数字找朋友
查看>>
18年selenium3+python3+unittest自动化测试教程(下)
查看>>
memcache数据库和redis数据库的区别(理论)
查看>>
我的友情链接
查看>>
MyBatis+Spring结合
查看>>
Office 365之SkyDrive Pro
查看>>
无缝滚动实现原理分析【公告栏】
查看>>
Java Web 高性能开发
查看>>
CentOS 4.4双网卡绑定,实现负载均衡
查看>>
Scala之柯里化和隐式转换
查看>>
获取androdmanifest里面的meta-data
查看>>
mysql拷贝表的几种方式
查看>>
用设计模式去掉没必要的状态变量 —— 状态模式
查看>>
linux安装elasticsearch及遇到的各种问题
查看>>
健忘的正则
查看>>
[转]CMake快速入门教程:实战
查看>>
IntelliJ IDEA创建JavaWeb工程及配置Tomcat部署
查看>>
Markdown用法
查看>>
求最大值及其下标
查看>>