MaxCompute表的生命周期(Lifecycle),指表(分区)数据从最后一次更新的时间算起,在经过指定的时间后没有变动,则此表(分区)将被MaxCompute自动回收。这个指定的时间就是生命周期。通过设置生命周期可以实现自动数据清理或数据保留,降低存储成本。
生命周期说明
生命周期单位为天,取值为正整数。
对于非分区表,如果表数据在生命周期内没有被修改,经过指定天数后此表将会被MaxCompute自动回收(类似DROP TABLE操作)。生命周期从最后一次表数据被修改的时间(LastModifiedTime)开始计算。
对于分区表,每个分区可以分别被回收。在生命周期内未被修改数据的分区,经过指定的天数后此分区将会被回收,否则会被保留。每个分区的生命周期是从最后一次分区数据被修改的时间(LastModifiedTime)开始计算。不同于非分区表,分区表的最后一个分区被回收后,该表不会被删除。
说明生命周期回收为每天定时启动,扫描全量分区。LastModifiedTime需要超过生命周期指定的时间才会回收。
假设某个分区表生命周期为1天,该分区数据最后一次被修改的时间是2020年02月17日15时。如果在2020年02月18日15时之前扫描此表(不到一天),则不会回收表分区。如果2020年02月19日回收扫描时发现表分区LastModifiedTime超过生命周期指定的时间,则上述分区会被回收。
生命周期主要提供定期回收表或分区的功能,每天根据服务的繁忙程度,不定时回收。不能确保表或分区的生命周期到期后立刻被回收。
删除表后,表的所有属性信息全部会被删除,包括生命周期。新建同名表后,表的生命周期以新设置的属性为准。
只能在表级别设置生命周期,不能在分区级别设置生命周期。为分区表指定的生命周期适用于该表的所有分区。创建表时即可指定生命周期。
如果您没有为表指定生命周期,则表(分区)不会根据生命周期规则被MaxCompute自动回收。
用于执行生命周期回收数据操作的用户是阿里云服务:
maxcompute.aliyuncs.com
,您可以在操作审计中获取操作记录,详情请参见事件查询快速入门。示例如下:表
bettergithubanalytics.test_lifecycle
依据生命周期被MaxCompute自动回收,可看到如下记录。表
bettergithubanalytics.sale_detail
的分区sale_date=2013/region=china
依据生命周期被MaxCompute自动回收,可看到如下记录。表分区的回收操作记录也支持使用DataWorks的数据地图功能查看,详情请参见数据地图概述。其显示操作人账号为MaxCompute系统账号
odps_user@aliyun.com
,即名称为maxcompute.aliyuncs.com
的阿里云服务。