全部产品
Search
文档中心

数据湖构建:存储优化

更新时间:Jan 28, 2026

DLF存储优化支持表级自适应Compaction、过期快照清理、分区生命周期管理、废弃文件清理等能力,帮助用户降低Paimon表使用和运维复杂度,提升计算和存储的使用效率。本文讲述DLF后台执行的智能存储优化策略及其执行机制。

重要

Iceberg 表不具备自动存储回收机制。为避免存储成本激增,请务必参考Iceberg Table存储治理以定期手动清理过期快照和孤立文件。

存储优化策略介绍

策略类型

描述

DLF执行机制

Compaction

Compaction功能通过合并小文件为较大文件,减少文件数量,进而降低元数据管理开销和查询时的文件查找成本,提升查询性能,增强Paimon表的查询效率。

在用户执行Commit写入数据时,DLF自动触发Compaction。

过期快照清理

为了保证快照文件对应的历史状态可以被正常读取,只要快照文件存在,其指向的历史数据文件就不能被删除。随着快照文件不断产生,历史数据占用的存储空间也将逐渐增加。因此需要淘汰不再使用的快照文件,以释放它们所指向的、不再活跃的历史数据空间,从而实现存储资源的有效管理与释放。

在DLF存储优化作业执行时,DLF自动触发快照清理。快照过期时间默认为1小时。用户可通过Paimon表参数调整过期时间,详见清理过期数据

分区生命周期管理

业务场景通常只需访问近期数据,在这种情况下可以按时间对数据进行分区,并设置分区过期时间以自动删除过于久远的历史分区,从而释放存储空间。此外,您可以进行存储分层配置,将访问频率较低的分区数据从高性能存储(如标准存储)迁移至低成本存储(如低频、归档或冷归档存储),从而在满足业务需求的同时降低存储成本。

用户可通过Paimon表参数配置过期时间,详见设置分区过期时间。配置参数后,会在DLF存储优化作业执行时自动触发。同时,您也可以通过智能存储分层,将符合条件的分区数据自动迁移至指定的存储类型(如标准、低频、归档或冷归档存储),也可以在表详情页面手动修改存储类型。通过存储概览,您可查看数据目录、数据库以及数据表的存储分层分布情况。

废弃文件清理

由于作业报错、重启等原因,Paimon 表目录下可能会遗留一些未被提交的临时文件。这些废弃文件未被任何快照引用,因此无法通过快照过期机制删除,需定期进行清理。

废弃文件保留时长默认为7天,超过该时间的废弃文件将被视为过期并自动清理,因此DLF每7天触发一次清理任务。

开启/关闭智能存储优化

说明

存储优化页签仅在创建 Paimon 表时显示。

  1. 登录数据湖构建控制台

  2. 数据目录列表页面,单击Catalog名称。

  3. 数据库页签中,单击目标数据库名称,查看数据表。

  4. 表列表中,单击目标表名称,查看表字段信息。

  5. 单击存储优化页签,可看到智能存储优化开关默认开启,单击image开关,即可关闭。

查看与配置存储优化策略

Compaction

存储优化页签,单击Compaction,您可查看小文件合并的执行情况,Rescale记录,执行历史等。

根据需求编辑策略模式:

动态资源模式(推荐)

系统根据实时负载自动弹性伸缩计算资源。此模式无需手动规划容量,适用于流量波动较大的场景。
支持三种配置偏好:

  • 资源延时均衡:在合并速度与资源消耗之间寻求最佳平衡点(默认选项)。

  • 延时优先:分配更多资源以最快速度完成合并,降低数据可见性延迟。

  • 资源优先:限制资源使用率以降低计算成本,允许稍长的合并耗时。

固定资源模式

用户手动指定用于 Compaction 的计算资源量。此模式适用于流量稳定或对成本控制有严格要求的场景。

  • 配置要求:计算资源(CU)配置不得低于 2 CU。

  • 参数设定:支持自定义 Compaction 触发间隔及 Bucket 数。

查看执行情况

可以查看当前表的优化执行情况,支持自定义配置云监控订阅告警,更多指标详情与配置步骤详情请参见湖表优化功能监控

查看Rescale记录

记录了数据表或特定分区进行“桶伸缩”(Bucket Rescaling)的历史事件。它反映了表底层物理存储结构的变更情况。Rescale 机制主要用于解决数据量变化带来的性能问题。通过Rescale记录,可以判断当前表是否是因为正在Rescale,从而没有进入Compaction流程。

查看执行历史

可以查看当前表的小文件合并的执行历史,它反映了系统如何处理碎片文件以优化读取性能和存储空间。可以通过此记录来判断:

  1. 确认任务运行:确保后台合并任务正常执行,防止小文件无限堆积。

  2. 评估压缩效率:通过对比合并前后的文件数和大小,评估当前的 Compaction 策略是否合理。

过期快照清理

存储优化页签,单击Snapshot Expire,您可以配置快照清理规则并查看快照清理结果。

  • 配置快照清理规则

    单击编辑,您可以设置快照保留时间(默认为1小时),单击保存,完成配置。

  • 查看快照清理结果

    • 当前Snapshot个数:实时显示当前剩余的快照数量。

    • 最早Snapshot信息:展示表中最早的快照详情,包括快照ID、提交时间、提交类型、表总行数以及本提交增加行数。

分区生命周期管理

存储优化页签,单击Partition LifeCycle,您可以进行分区清理规则配置、查看分区清理结果、存储分层配置。

分区清理规则配置

  1. 单击启用分区清理右侧的image开关,可启用分区清理。

  2. 启用分区清理后,您可根据业务需求进行以下规则配置,单击保存,完成配置。

    可以通过配置相应 table option 键值对来完成配置。

    配置项

    说明

    过期策略

    partition.expiration-strategy

    可选择以下过期策略:

    • 最近访问时间(access-time:根据分区数据最近访问时间,进行过期判断。

    • 分区值(values-time:可以配置分区时间戳格式和分区字段模式。

      • 时间戳格式(partition.timestamp-formatter):可配置例如yyyy-MM-ddyyyyMdddd/MM/yyyydd.MM.yyyy等。

      • 时间戳模式(partition.timestamp-pattern):默认取第一个分区字段,可配置例如 $dt 或者$year-$month-$day等。

    • 最后更新时间(update-time:按照最细粒度分区数据最后更新时间进行过期判断。

    分区保留时间

    partition.expiration-time

    单位:天。可配置例如30d。最大可设置为999999天。分区保留时间根据所选过期策略,判定起始时间。

  3. (可选)保存之后,也可单击规则配置右侧的编辑,进行再次修改。

说明

若您希望永久保留分区,则无需配置分区过期清理规则,系统默认不会自动清理分区数据。

查看分区清理结果

单击点击查看分区列表,可查看当前数据表的分区列表,包括分区名、行数(物理)、引用的文件个数、总文件大小、创建人、存储类型、最新更新人、创建时间、最近更新时间及操作。

存储分层配置

配置项

说明

智能存储分层

image开启后,系统将根据您配置的生命周期规则,自动对Catalog下所有表进行冷热分层。请根据业务需求填写分层策略和分层规则。

说明
  • 如果Catalog级别开启智能分层,那么Table级别的智能存储分层会默认开启(继承自Catalog),并支持在Table级别修改配置。如果在表级别修改规则,则不再展示继承自Catalog。

  • 如果Catalog级别未开启智能分层,也支持在Table级别开启,并支持修改。

分层策略

  • 最后访问时间:根据表/分区数据最后访问时间,进行规则判断。

  • 最后更新时间:按照表/分区数据最后更新时间,进行规则判断。

分层规则

不同存储类型的最低存储时间要求不同。

您可选择性配置以下分层规则:

  • 转换至低频访问存储

    • 配置天数:自定义,默认30天。

      数据最后访问时间超过该天数后,将会自动转为低频存储。低频存储依旧可以被计算引擎访问,但性能会有所下降。

    • 被访问自动转标准存储:如果勾选,在表/分区被访问时,系统会自动将该分区或非分区表转换为标准存储。

      说明

      仅在分层策略选择基于“最后访问时间”时支持该功能。

  • 转换至归档存储

    • 配置天数:自定义,默认60天。

      数据最后访问时间超过该天数后,将会自动转为归档存储。归档存储的数据,将无法被计算引擎访问。

    • 被访问自动转标准存储:如果勾选,在表/分区被访问时,系统会自动将该分区或非分区表转为标准存储。

      说明

      仅在分层策略选择基于“最后访问时间”时支持该功能。

  • 转换至冷归档存储

    • 配置天数:自定义,默认180天。

      数据最后访问时间超过该天数后,将会自动转为冷归档存储。归档存储的数据,将无法被计算引擎访问。

说明

除了智能存储分层功能外,您还可以在表详情页面手动修改存储类型。同时,您可以通过存储概览查看数据目录、数据库以及数据表的存储分层分布情况。

废弃文件清理

存储优化页签,单击Orphan File Remove,您可查看废弃文件清理规则。例如,废弃文件的保留时间默认为7天(根据文件写入时间判断),超过该时间的过期废弃文件将被系统自动清理。

手动修改存储类型

  1. 数据库列表中,单击数据库名称,可查看表列表。

  2. 表列表中,单击表名称,可查看表字段。

  3. 单击表详情页签,您可以手动修改分区表和非分区表的存储类型。

    分区表

    分区列表页签,您可以对不同存储类型的分区进行存储类型修改操作。

    • 标准、低频、归档存储类型的分区:

      单击操作列的修改存储类型,支持修改为除当前存储类型外的其他存储类型。

    • 冷归档存储类型的分区:

      需先解冻,待解冻完成并恢复为已解冻状态后,才可以转换存储类型。具体操作如下:

      1. 单击解冻,可配置解冻状态持续时间,支持选择分区批量解冻

        • 取值范围:1~365 的正整数(单位:天)。

        • 默认值:1天。

      2. 当数据进入已解冻状态时,单击操作列的修改存储类型,可修改为其他存储类型。

    非分区表

    在表的基本信息中,您可以对存储类型进行修改。

    • 标准、低频、归档存储类型

      单击存储类型右侧的修改,支持修改为除当前存储类型外的其他存储类型。

    • 冷归档存储类型

      需先解冻,待解冻完成并恢复为已解冻状态后,才可以转换存储类型。具体操作如下:

      1. 单击存储类型右侧的解冻,可配置解冻状态持续时间

        • 取值范围:1~365 的正整数(单位:天)。

        • 默认值:1天。

      2. 存储类型变为冷归档(已解冻)后,单击存储类型右侧的修改,支持修改为除当前存储类型外的其他存储类型。

    说明
    • 解冻消耗时间:是指解冻Object所消耗的时间。冷归档存储类型的解冻优先级仅支持标准,解冻消耗时间为2~5小时内完成解冻。

    • 解冻状态开始时间:是指分区内第一个冷归档存储类型的Object在完成解冻操作后,正式进入“已解冻”状态的时间点。

    • 解冻状态持续时间:是指分区内第一个冷归档存储类型的Object在完成解冻后,数据处于“已解冻”状态的有效时长。待分区内所有Object均完成解冻后,您可以对分区进行正常的读取、写入或存储类型转换等操作。一旦解冻状态持续时间结束,分区中的数据将重新回到冷归档状态,无法直接访问,需要再次解冻才能操作。

    解冻过程

    1. 初始时,Object处于冷冻状态。

    2. 用户提交解冻请求后,Object处于解冻中状态。解冻消耗时间请以实际为准。

    3. 服务端完成解冻任务后,Object进入已解冻状态。对于表级存储分层而言,当分区内所有对象均完成解冻后,该分区即可正常访问。

      您可以通过调整分区解冻状态持续时间来延长解冻状态的总时长,但总时长不能超过该存储类型允许的解冻状态持续时间的最大限制。

    4. 解冻状态持续时间结束后,Object再次返回到冷冻状态,且不改变Object原有的存储类型。若后续仍需访问数据,则需重新提交解冻请求,并等待解冻完成。