MaxCompute提供了数据生命周期管理功能,方便您释放存储空间,简化回收数据的流程。
注意事项
- 您可以在创建表的时候指定生命周期,详细请参见表操作。生命周期只能在表级别设置,不能在分区级别设置。分区表设置生命周期后,生命周期也会在分区级别生效。
- 在MaxCompute中,每当表的数据被修改后,表的
LastDataModifiedTime
将会被更新。因此,MaxCompute会根据每张表的LastDataModifiedTime
以及生命周期的设置来判断是否要回收此表。 - 如果表是非分区表,自最后一次数据被修改开始计算,经过
days
天后数据仍未被改动,则此表无需您干预,将会被MaxCompute自动回收(类似drop table
操作)。 - 如果表是分区表,则根据各分区的
LastDataModifiedTime
判断该分区是否该被回收。 - 不同于非分区表,分区表的最后一个分区被回收后,该表不会被删除。
- 非分区表不支持取消生命周期,只能修改生命周期。分区表可以取消某个具体分区的生命周期。
修改表的生命周期
语法格式
ALTER TABLE table_name SET lifecycle days;
功能说明:此命令用于修改表的生命周期。
参数说明
- table_name:需要修改生命周期的表名。
- days:生命周期时间,只能为正整数,单位为天。
示例
-- 新建test_lifecycle表,生命周期为100天。
CREATE TABLE test_lifecycle(key string) lifecycle 100;
-- 修改test_lifecycle表,将生命周期设为50天。
ALTER TABLE test_lifecycle SET lifecycle 50;
禁止/恢复生命周期
语法格式
ALTER TABLE table_name [partition_spec] ENABLE|DISABLE LIFECYCLE;
功能说明:禁止、恢复表或表指定分区的生命周期功能。
参数说明
- table_name:表名称。
- partition_spec:分区名称。
- DISABLE LIFECYCLE:禁止表、分区的生命周期功能。
- 禁止表本身及其所有分区被生命周期回收,优先级高于恢复表分区生命周期功能。即当使用
table disable lifecycle
时,partition_spec enable lifecycle
设置无效。 - 禁止表的生命周期功能后,表的生命周期配置及其分区的ENABLE和DISABLE标记会被保留。
- 禁止表生命周期功能后,仍然可以修改表及分区的生命周期配置。
- 禁止表生命周期后,表的生命周期就变成永久。
- 禁止表本身及其所有分区被生命周期回收,优先级高于恢复表分区生命周期功能。即当使用
- ENABLE LIFECYCLE:撤销对表、分区生命周期的禁止,恢复表、分区生命周期功能。
- 表及其分区重新参与生命周期回收,默认使用当前表及分区上的生命周期配置。
- 开启表生命周期前可以修改表及分区的生命周期配置,防止开启表生命周期后因使用之前的配置导致数据被误回收。
示例
--禁止表trans的生命周期功能(变成永久)。
ALTER TABLE trans DISABLE LIFECYCLE;
--禁止表trans中时间为20141111分区生命周期功能。
ALTER TABLE trans PARTITION(dt='20141111') DISABLE LIFECYCLE;