更新时间:2024-07-04 GMT+08:00

禁止或恢复表的生命周期

功能介绍

禁止或恢复指定表或分区的生命周期。

使用禁止或恢复表的生命周期有以下两种场景:
  1. 表或分区表开启了生命周期的功能,该功能可以禁止或恢复表的生命周期,即修改“dli.table.lifecycle.status”的参数值。
  2. 表或分区表未开启生命周期的功能,使用禁止或恢复表的生命周期,则会增加“dli.table.lifecycle.status”这一属性。

约束限制

  • 表生命周期处于公测阶段,如果有需要请联系客服申请开通白名单。
  • 表生命周期功能支持Hive、DataSource语法创建表、多版本表,暂不支持跨源表、Carbon表。
  • 生命周期单位为天,取值为正整数。
  • 生命周期只能在表级别设置,不能在分区级设置。为分区表指定的生命周期,适用于该表所有的分区。

语法格式

  • 该语法在表级别禁止或恢复表的生命周期
    1
    ALTER TABLE table_name SET TBLPROPERTIES("dli.table.lifecycle.status"={enable|disable});
    
  • 该语法可在表或分区表级别禁止或恢复指定表
    1
    ALTER TABLE table_name [pt_spec] LIFECYCLE {enable|disable};
    

关键字

TBLPROPERTIES:表的属性,增加表的生命周期功能。

参数说明

表1 禁止或恢复生命周期参数说明

参数名称

是否必选

参数说明

table_name

待禁止或恢复生命周期的表的名称。

pt_spec

待禁止或恢复生命周期的表的分区信息。格式为partition_col1=col1_value1, partition_col2=col2_value1...。对于有多级分区的表,必须指明全部的分区值。

enable

恢复表或指定分区的生命周期功能
  • 表及其分区重新参与生命周期回收,默认使用当前表及分区上的生命周期配置。
  • 开启表生命周期前可以修改表及分区的生命周期配置,防止开启表生命周期后因使用之前的配置导致数据被误回收。

disable

禁止表或指定分区的生命周期功能。

  • 禁止表本身及其所有分区被生命周期回收,优先级高于恢复表分区生命周期。即当使用禁止表或指定分区的生命周期功能时,设置待禁止或恢复生命周期的表的分区信息是无效的。
  • 禁止表的生命周期功能后,表的生命周期配置及其分区的enable和disable标记会被保留。
  • 禁止表的生命周期功能后,仍然可以修改表及分区表的生命周期配置。

示例

  • 示例1:禁止表test_lifecycle的生命周期功能。
    1
    alter table test_lifecycle SET TBLPROPERTIES("dli.table.lifecycle.status"='disable');
    
  • 示例2:禁止表test_lifecycle中时间为20230520分区的生命周期功能。
    1
    alter table test_lifecycle partition (dt='20230520') LIFECYCLE 'disable';
    
    • 当设置禁止分区表的生命周期功能后,该表的所有分区的生命周期功能都会被禁止。