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

配置Drop Partition命令支持批量删除

操作场景

Drop Partition主要针对表的分区进行操作。会删除一个或多个分区内的全部数据。Drop Partition适用于需要批量删除大量具有相同分区特征的数据,例如按时间周期删除历史数据,或者当某个分区的数据不再需要时,可以直接删除整个分区。例如,若按日期对表进行分区,执行Drop Partition操作删除某个月份的分区,那么该月份对应的所有数据都会被删除。

在 Spark中对Hive表执行Drop Partition操作时,通常使用等号(=)来指定要删除的分区值。配置该参数后可以支持多种过滤条件来批量删除,如'<','<=','>','>=','!>','!<'。

约束与限制

本章节仅适用于MRS 3.2.0-LTS及之后版本。

配置参数

  1. 登录FusionInsight Manager系统。

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

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

    参数

    参数说明

    取值示例

    spark.sql.dropPartitionsInBatch.enabled

    Spark中用于控制批量删除分区表分区。批量删除可以显著提高删除操作的性能,特别是当需要删除大量分区时。在处理大规模数据集时,批量删除可以减少元数据操作的开销,从而提高整体性能。

    • true:开启批量删除分区表分区功能,使用Drop Partition命令支持使用如下过滤条件,如'<','<=','>','>=','!>','!<'。
    • false:不启用批量删除分区表分区功能。

    true

    spark.sql.dropPartitionsInBatch.limit

    Spark中控制批量删除分区表分区的最大分区数。

    1000

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

    图1 修改Spark配置

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

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

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