配置Drop Partition命令支持批量删除
操作场景
Drop Partition主要针对表的分区进行操作。会删除一个或多个分区内的全部数据。Drop Partition适用于需要批量删除大量具有相同分区特征的数据,例如按时间周期删除历史数据,或者当某个分区的数据不再需要时,可以直接删除整个分区。例如,若按日期对表进行分区,执行Drop Partition操作删除某个月份的分区,那么该月份对应的所有数据都会被删除。
在 Spark中对Hive表执行Drop Partition操作时,通常使用等号(=)来指定要删除的分区值。配置该参数后可以支持多种过滤条件来批量删除,如'<','<=','>','>=','!>','!<'。
约束与限制
本章节仅适用于MRS 3.2.0-LTS及之后版本。
配置参数
- 登录FusionInsight Manager系统。
详细操作请参考访问集群Manager。
- 选择“集群 > 服务 > Spark2x/Spark > 配置”,单击“全部配置”,搜索并调整以下参数。
参数
参数说明
取值示例
spark.sql.dropPartitionsInBatch.enabled
Spark中用于控制批量删除分区表分区。批量删除可以显著提高删除操作的性能,特别是当需要删除大量分区时。在处理大规模数据集时,批量删除可以减少元数据操作的开销,从而提高整体性能。
- true:开启批量删除分区表分区功能,使用Drop Partition命令支持使用如下过滤条件,如'<','<=','>','>=','!>','!<'。
- false:不启用批量删除分区表分区功能。
true
spark.sql.dropPartitionsInBatch.limit
Spark中控制批量删除分区表分区的最大分区数。
1000
- 修改参数配置后,单击“保存”,根据界面提示操作后,等待配置保存成功。
- Spark服务端配置更新后,如果“配置状态”为“配置过期”,则需重启组件以使配置生效。
图1 修改Spark配置
在Spark服务概览页面,选择“更多 > 重启服务/滚动重启服务”,验证管理员密码后,等待服务重启成功。
如果使用Spark客户端提交任务,修改了集群的参数“spark.sql.dropPartitionsInBatch.enabled”和“spark.sql.dropPartitionsInBatch.limit”后,需要重新下载客户端才能使配置生效,请参考使用MRS客户端。
组件重启期间将无法对外提供服务,可能会影响集群的上层业务正常运行,请在业务空闲期或确认操作无影响后再执行本操作。