
# Hive分区修剪的谓词下推增强
#### 操作场景
分区裁剪是一种优化技术，它通过在执行查询时仅扫描满足查询条件的分区，而不是扫描整个表的所有分区，来减少数据扫描量，从而提高查询性能。
在旧版本中，对Hive表的分区修剪的过滤条件（即谓词）下推，只支持列名与整数或者字符串的比较表达式的下推，在2.3版本中，增加了对null、in、and、or表达式的下推支持。
#### 配置参数
1. 登录FusionInsight Manager系统。 
   详细操作请参考[访问集群Manager](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_2124.html)。
   
   
2. 选择"集群 \> 服务 \> Spark2x/Spark \> 配置"，单击"全部配置"，搜索并调整以下参数。 
   
   | **参数**                                                    | **说明**                                                                                                                                                                                                                                                                                                                                                                  | 取值示例 |
   |:---|:---|:---|
   | spark.sql.hive.advancedPartitionPredicatePushdown.enabled | 用于配置是否开启Hive表的分区谓词下推增强功能。 - true：开启Hive表的分区谓词下推增强功能，Spark会尝试将更多的过滤条件（即谓词）推送到分区裁剪中。  - false：关闭Hive表的分区谓词下推增强功能   开启分区谓词下推增强功能可以显著提高分区表的查询性能。但在启用时，需要考虑潜在的兼容性问题，并根据实际使用情况进行调整。 | true |
      
   
   

3. 修改参数配置后，单击"保存"，根据界面提示操作后，等待配置保存成功。
4. Spark服务端配置更新后，如果"配置状态"为"配置过期"，则需重启组件以使配置生效。 
   图1修改Spark配置   
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/zh-cn_image_0000002339162277.png "点击放大")
   在Spark服务概览页面，选择"更多 \> 重启服务/滚动重启服务"，验证管理员密码后，等待服务重启成功。
   如果使用Spark客户端提交任务，修改了集群的参数"spark.sql.hive.advancedPartitionPredicatePushdown.enabled"后，需要重新下载客户端才能使配置生效，请参考[使用MRS客户端](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_2126.html)。
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/warning_3.0-zh-cn.png)
   组件重启期间将无法对外提供服务，可能会影响集群的上层业务正常运行，请在业务空闲期或确认操作无影响后再执行本操作。
   
   
 
