MaxCompute表的生命週期(Lifecycle),指表(分區)資料從最後一次更新的時間算起,在經過指定的時間後沒有變動,則此表(分區)將被MaxCompute自動回收。這個指定的時間就是生命週期。通過設定生命週期可以實現自動資料清理或資料保留,降低儲存成本。
基本定義與作用
單位與取值:生命週期以“天”為單位,取值為正整數。
功能:提供定期自動回收表或分區的功能。
回收規則
計時起點:生命週期的計算從表或分區的最後一次資料修改時間(
LastModifiedTime)開始。觸發條件:
LastModifiedTime需要超過生命週期指定的時間才會回收。即(目前時間 - LastModifiedTime) > 生命週期天數時,表或分區才會被納入回收範圍。執行機制:
回收操作由系統每天定時啟動,掃描全量表和分區。實際回收時間取決於服務的繁忙程度,不保證在到期後立刻執行。資料生命週期達到刪除時間點後,資料會在24小時內被刪除。
樣本:
假設某個分區表生命週期為1天,該分區資料最後一次被修改的時間是
2026年02月17日15時。如果在2026年02月18日15時之前掃描此表(不到一天),則不會回收表分區。如果2026年02月19日掃描時發現表分區LastModifiedTime超過生命週期指定的時間,則上述分區會被回收。
不同表類型的適用規則
非分區表
生命週期作用於整張表。
建立表時即可指定生命週期,如果沒有為表指定生命週期,則表(分區)不會根據生命週期規則被MaxCompute自動回收。
如果表資料在生命週期內沒有被修改,經過指定天數後整張表將會被MaxCompute自動回收(類似DROP TABLE操作)。
刪除表後,表的所有屬性資訊全部會被刪除,包括生命週期。建立同名表後,表的生命週期以新設定的屬性為準。
分區表
生命週期作用於每個獨立的分區。但是只能在表層級設定生命週期,不能在分區層級設定生命週期。為分區表指定的生命週期適用於該表的所有分區。
建立表時即可指定生命週期,如果沒有為表指定生命週期,則分區不會根據生命週期規則被MaxCompute自動回收。
在生命週期內未被修改的分區會被單獨回收。
不同於非分區表,分區表的最後一個分區被回收後,該表不會被刪除。
刪除表後,表的所有屬性資訊全部會被刪除,包括生命週期。建立同名表後,表的生命週期以新設定的屬性為準。
審計與監控
執行主體:
執行生命週期回收資料操作的使用者是阿里雲服務帳號:
maxcompute.aliyuncs.com。操作記錄:
可以在Action Trail服務中擷取相關操作記錄,詳情請參見事件查詢快速入門。例如,可看到類似“表
bettergithubanalytics.test_lifecycle依據生命週期被MaxCompute自動回收”的記錄。非分區表自動回收
表
bettergithubanalytics.test_lifecycle依據生命週期被MaxCompute自動回收,可看到如下記錄。

分區表自動回收分區
表
bettergithubanalytics.sale_detail的分區sale_date=2013/region=china依據生命週期被MaxCompute自動回收,可看到如下記錄。

