更新时间:2026-07-16 GMT+08:00
分享

管理TTL策略

命令功能

开启TTL后,使用此命令添加/更新/删除/清空TTL策略。

命令格式

  • 添加TTL策略:
    call ttl_policy_save(table => "[table]", path => "[path]", spec => "[spec]", level => "[level]", value => "[value]", units => "[units]")
    • spec使用正则表达式来选择需要TTL的分区,可以执行show partitions命令查看Hudi表的分区格式,然后写正确的正则表达式来匹配分区。
    • value和units要搭配使用,value给定的是整数值,units是数值的单位,表示数据要保留的时长。
  • 更新TTL策略:
    call ttl_policy_save(table => "[table]", path => "[path]", spec => "[spec]", level => "[level]", value => "[value]", units => "[units]")

    如果spec相同,历史的TTL策略就会被更新。

  • 删除TTL策略:
    call ttl_policy_delete(table => "[table]", path => "[path]", spec => "[spec]")
  • 清空TTL策略:
    call ttl_policy_empty(table => "[table]", path => "[path]")
  • 查看TTL策略:
    call ttl_policy_show(table => "[table]", path => "[path]")

参数描述

ttl_policy_save命令:

参数

描述

是否必填

table

该参数用于指定Hudi表名,String类型,支持表名或者库名.表名格式,与path二选一。

path

该参数用于指定Hudi表的绝对路径,String类型,与table二选一。

spec

该参数用于定义匹配TTL目标分区的正则表达式,String类型。

level

该参数用于设置TTL级别,String类型。

取值范围:PARTITION或者RECORD,目前仅支持PARTITION。

value

该参数用于设置数据保留的时长,String类型

units

该参数用于设置数据保留时长的单位,String类型。

取值范围:YEARS、MONTHS、WEEKS、DAYS。

ttl_policy_delete命令:

参数

描述

是否必填

table

该参数用于指定Hudi表名,String类型,支持表名或者库名.表名格式,与path二选一。

path

该参数用于指定Hudi表的绝对路径,String类型,与table二选一。

spec

该参数用于定义匹配TTL目标分区的正则表达式,String类型。

ttl_policy_empty命令:

参数

描述

是否必填

table

该参数用于指定Hudi表名,String类型,支持表名或者库名.表名格式,与path二选一。

path

该参数用于指定Hudi表的绝对路径,String类型,与table二选一。

ttl_policy_show命令:

参数

描述

是否必填

table

该参数用于指定Hudi表名,String类型,支持表名或者库名.表名格式,与path二选一。

path

该参数用于指定Hudi表的绝对路径,String类型,与table二选一。

示例

场景:

Hudi表是3级别分区,年/月/日,分区字段是dt。

  • 添加TTL策略(2023年5月的分区保留1天):
    call ttl_policy_save(table => 'hudi_table', spec => 'dt=2023/05/*', units => 'DAYS', value => '1', level => 'PARTITION')
  • 更新TTL策略(2023年5月的分区保留1年):
    call ttl_policy_save(table => 'hudi_table', spec => 'dt=2023/05/*', units => 'YEARS', value => '1', level => 'PARTITION')
  • 删除TTL策略:
    call ttl_policy_delete(table => "hudi_table", spec => "dt=2023/05/*")
  • 清空TTL策略:
    call ttl_policy_empty(table => "hudi_table")
  • 查看TTL策略:
    call ttl_policy_show(table => "hudi_table")

相关文档