更新时间:2026-06-11 GMT+08:00
分享

清理Paimon过期数据

操作场景

清理过期数据可以释放存储空间,优化资源利用并提升系统运行效率等。

调整快照文件过期时间

快照文件用于还原历史状态,在其存续期间,关联的历史数据文件无法删除。随着快照不断生成,存储占用会持续增长,通过清理不再使用的快照文件,可以释放其指向的历史数据文件所占用的空间。

表1中的参数决定了快照文件的过期时间。

表1 快照文件的过期时间参数

参数

说明

数据类型

默认值

snapshot.num-retained.min

至少保留的快照文件个数。

Integer

10

snapshot.num-retained.max

至多保留的快照文件个数。

Integer

2147483647

snapshot.time-retained

一个快照文件最长的保留时间。

Duration

1h

在当前快照文件数量大于“snapshot.num-retained.min”的前提下,只要当前快照文件数量大于“snapshot.num-retained.max”,或最早的快照文件产出时间超过了“snapshot.time-retained”,就会触发快照清理。

手动清理临时文件

由于作业报错重启等原因,Paimon表目录下可能会遗留一些未被提交的临时文件。这些文件无法通过快照过期机制删除,需要手动清理。可通过执行如下SQL进行清理:

CALL my_catalog.sys.remove_orphan_files(table => '<my_db>.<my_table>');

其中,my_catalog是Paimon Catalog名称,my_db是需要清理的Paimon表所在的数据库名称,my_table是需要清理的Paimon表的表名称。默认情况下,该操作只清理创建时间超过1天的废弃文件。可以通过传入额外参数,指定清理截止时间,但需要确保指定时间之前启动的写入任务都已经结束;例如业务中写入任务最长运行2个小时,则清理截止时间需要指定为2个小时之前,否则可能误删正在运行而未提交任务产生的数据文件,导致数据丢失。例如,清理my_catalog.my_db.my_table表中创建时间不晚于2026-01-01 12:00:00的废弃文件:

CALL my_catalog.sys.remove_orphan_files(table => '<my_db>.<my_table>', older_than => '2026-01-01 12:00:00');

相关文档