MaxCompute提供了数据生命周期管理功能,方便您释放存储空间,简化回收数据的流程。

您可以在创建表的时候指定生命周期,生命周期只能设定到表级别,不能在分区级设置生命周期。详细请参见表操作。关于生命周期:
  • 在MaxCompute中,每当表的数据被修改后,表的LastDataModifiedTime将会被更新。因此,MaxCompute会根据每张表的LastDataModifiedTime以及Lifecycle的设置来判断是否要回收此表。
  • 如果表是非分区表,自最后一次数据被修改开始计算,经过days天后数据仍未被改动,则此表无需您干预,将会被MaxCompute自动回收(类似drop table操作)。
  • 如果表是分区表,则根据各分区的LastDataModifiedTime判断该分区是否该被回收。
  • 不同于非分区表,分区表的最后一个分区被回收后,该表不会被删除。
  • 非分区表不支持取消Lifecycle,只能修改Lifecycle。分区表可以取消某个具体分区的Lifecycle。

修改表的生命周期

语法格式
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:分区名称。
示例
ALTER TABLE trans PARTITION(dt='20141111') DISABLE LIFECYCLE;