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
的阿里云服務。