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
,您可以在Action Trail中擷取操作記錄,詳情請參見事件查詢快速入門。樣本如下:表
bettergithubanalytics.test_lifecycle
依據生命週期被MaxCompute自動回收,可看到如下記錄。表
bettergithubanalytics.sale_detail
的分區sale_date=2013/region=china
依據生命週期被MaxCompute自動回收,可看到如下記錄。表分區的回收操作記錄也支援使用DataWorks的資料地圖功能查看,詳情請參見資料地圖概述。其顯示操作人帳號為MaxCompute系統帳號
odps_user@aliyun.com
,即名稱為maxcompute.aliyuncs.com
的阿里雲服務。