Hive - 之谓词下推解析

Hive - 之谓词下推解析

Hive的谓词下推是在对数据做操作之前,扫描数据进内存的一种优化手段!

那么具体什么时候会自动进行谓词下推呢,或者换一句话说谓词下推的规则是怎样的呢 ?

-- 1  join 【对于join,不管谓词放在on 还是 放在join都会触发谓词下推】
select * from a join b on a.id = b.id and a.name = 'a' and b.name = 'b';  --all pushed 
select * from a join b on a.id = b.id where a.name = 'a'; 				  --all pushed
select * from a join b on a.id = b.id and a.name = 'a' where b.name = 'a';--all pushed
select * from a join b on a.id = b.id where a.name = 'a';

-- 2 left outer join 【where 过滤只能针对主表的过滤条件,on上的只针对辅表的过滤条件】
select * from a left join b on a.id = b.id and a.name = 'a';     -- not pushed 
select * from a left join b on a.id = b.id where a.name = 'a';   -- pushed 
select * from a left join b on a.id = b.id where b.name = 'b';   -- not pushed 
select * from a left join b on a.id = b.id and b.name = 'b';     -- pushed 


--3 right outer join 【where 过滤只能针对主表的过滤条件,on上的只针对辅表的过滤条件】
select * from a right join b on a.id = b.id and a.name = 'a';     -- pushed 
select * from a right join b on a.id = b.id where a.name = 'a';   -- not pushed 
select * from a right join b on a.id = b.id where b.name = 'b';   -- pushed 
select * from a right join b on a.id = b.id and b.name = 'b';     -- not pushed 

--4 full outer join 
--这种情况下无论如何都不会触发谓词下推

--还有一些情况下也不会触发谓词下推
	1、在过滤条件中用到了某些函数
	...
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值