一文详解Hive的谓词下推

本文详细探讨了Hive中的谓词下推(Predicate Pushdown)技术,旨在优化查询性能。通过不同类型的JOIN操作(如Left Outer Join、Right Outer Join、Full Outer Join和Inner Join),分析了过滤条件对谓词下推的影响,并提供了具体案例说明何时可以提前执行过滤条件,以减少数据传输和提升查询效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

谓词,是指用来描述或判断客体性质、特征或客体之间关系的词项。在SQL中即返回值为布尔值的函数。

谓词下推,在Hive中叫Predicate Pushdown,含义是指在不影响结果的前提下,尽量将过滤条件提前执行,使得最后参与join的表的数据量更小。谓词下推后,过滤条件将在map端提前执行,减少map端输出,降低了数据传输IO,节约资源,提升性能。大数据培训在Hive中通过配置hive.optimize.ppd参数为true,开启谓词下推,默认为开启状态。

一、表的分类

首先定义一下参与join的表的类型,共分4类。

1. Preserved Row table:保留表

a left (outer) join b 中的 a 表;

a right (outer) join b 中的 b 表;

a full outer join b a 和 b 表都是 保留表。

2. Null Supplying table:提供null值的表,也就是 非保留表,在join中如果不能匹配上的使用null填充的表。

a left (outer) join b 中的 b 表;

a right (outer) join b 中的 a 表,

a full outer join b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值