
# 禁止或恢复表的生命周期
#### 功能介绍
禁止或恢复指定表或分区的生命周期。
使用禁止或恢复表的生命周期有以下两种场景：
1. 表或分区表开启了生命周期的功能，该功能可以禁止或恢复表的生命周期，即修改"dli.table.lifecycle.status"的参数值。
2. 表或分区表未开启生命周期的功能，使用禁止或恢复表的生命周期，则会增加"dli.table.lifecycle.status"这一属性。
 
#### 约束限制
- 表生命周期处于受限使用阶段，如需使用请提交工单申请开通。
- 表生命周期功能支持Hive、DataSource语法创建表、多版本表，暂不支持跨源表、Carbon表。
- 生命周期单位为天，取值为正整数。
- 生命周期只能在表级别设置，不能在分区级设置。为分区表指定的生命周期，适用于该表所有的分区。
 
#### 语法格式
- 该语法在表级别禁止或恢复表的生命周期
  ```
  ALTER TABLE table_name SET TBLPROPERTIES("dli.table.lifecycle.status"={enable|disable});
  ```
  

- 该语法可在表或分区表级别禁止或恢复指定表
  ```
  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的生命周期功能。
  ```
  alter table test_lifecycle SET TBLPROPERTIES("dli.table.lifecycle.status"='disable');
  ```
  

- 示例2：禁止表test_lifecycle中时间为20230520分区的生命周期功能。
  ```
  alter table test_lifecycle partition (dt='20230520') LIFECYCLE 'disable';
  ```
  ![](https://support.huaweicloud.com/sqlref-spark-dli/public_sys-resources/note_3.0-zh-cn.png)
  - 当设置禁止分区表的生命周期功能后，该表的所有分区的生命周期功能都会被禁止。
    
 
