更新时间:2025-06-11 GMT+08:00

Hive分区修剪的谓词下推增强

操作场景

分区裁剪是一种优化技术,它通过在执行查询时仅扫描满足查询条件的分区,而不是扫描整个表的所有分区,来减少数据扫描量,从而提高查询性能。

在旧版本中,对Hive表的分区修剪的过滤条件(即谓词)下推,只支持列名与整数或者字符串的比较表达式的下推,在2.3版本中,增加了对null、in、and、or表达式的下推支持。

配置参数

  1. 登录FusionInsight Manager系统。

    详细操作请参考访问集群Manager

  2. 选择“集群 > 服务 > Spark2x/Spark > 配置”,单击“全部配置”,搜索并调整以下参数。

    参数

    说明

    取值示例

    spark.sql.hive.advancedPartitionPredicatePushdown.enabled

    用于配置是否开启Hive表的分区谓词下推增强功能。

    • true:开启Hive表的分区谓词下推增强功能,Spark会尝试将更多的过滤条件(即谓词)推送到分区裁剪中。
    • false:关闭Hive表的分区谓词下推增强功能

    开启分区谓词下推增强功能可以显著提高分区表的查询性能。但在启用时,需要考虑潜在的兼容性问题,并根据实际使用情况进行调整。

    true

  1. 修改参数配置后,单击“保存”,根据界面提示操作后,等待配置保存成功。
  2. Spark服务端配置更新后,如果“配置状态”为“配置过期”,则需重启组件以使配置生效。

    图1 修改Spark配置

    在Spark服务概览页面,选择“更多 > 重启服务/滚动重启服务”,验证管理员密码后,等待服务重启成功。

    如果使用Spark客户端提交任务,修改了集群的参数“spark.sql.hive.advancedPartitionPredicatePushdown.enabled”后,需要重新下载客户端才能使配置生效,请参考使用MRS客户端

    组件重启期间将无法对外提供服务,可能会影响集群的上层业务正常运行,请在业务空闲期或确认操作无影响后再执行本操作。