全部產品
Search
文件中心

MaxCompute:生命週期

更新時間:Sep 11, 2026

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自動回收,可看到如下記錄。

    在Action Trail(ActionTrail)事件詳情頁面中,事件解讀提示阿里雲服務(maxcompute.aliyuncs.com)調用了MaxCompute的 DropTable 介面。基本資料中事件名稱為 DropTable,使用者名稱為 maxcompute.aliyuncs.com(表明該操作由系統服務自動發起),事件時間為 2022 年 12 月 11 日 11:21:11。相關資源套件含兩條記錄:

    • 表(ACS::MaxCompute::Table):test_lifecycle

    • 專案空間(ACS::MaxCompute::Project):bettergithubanalytics

    
    {
    "eventType": "TableEvent",
    "referencedResources": { // 事件影響的資源清單
        "ACS::MaxCompute::Table": [
            "test_lifecycle"
        ],
        "ACS::MaxCompute::Project": [
            "bettergithubanalytics"
        ]
    },
    "userIdentity": { // 要求者的身份資訊
        "accountId": "xxx", // 阿里雲主帳號 ID
        "type": "system", // 阿里雲服務
        "userName": "maxcompute.aliyuncs.com"
    },
    "serviceName": "MaxCompute", // 事件相關的雲端服務名稱
    "additionalEventData": {
        "TableName": "test_lifecycle",
        "ProjectName": "bettergithubanalytics",
        "OperationText": "RECYCLE_TABLE"
    },
    "requestId": "3b85e8ed-6c4a-4680-b386-4afd90dd6972",
    "eventTime": "2022-12-11T03:21:11Z", // 事件的發生時間 (UTC 格式)
    "isGlobal": false,
    "acsRegion": "cn-beijing", // 阿里雲地區
    "eventName": "DropTable" // 事件名稱
    }

    分區表自動回收分區

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

    在Action Trail(ActionTrail)事件詳情頁面,事件解讀顯示阿里雲服務調用了MaxCompute的 ChangeTable 介面。基本資料中,事件名稱為 ChangeTable,事件來源為MaxCompute,使用者名稱為 maxcompute.aliyuncs.com相關資源地區列出兩條關聯資源:

    • 資源類型(ACS::MaxCompute::Table),資源名稱 sale_detail

    • 資源類型專案空間(ACS::MaxCompute::Project),資源名稱 bettergithubanalytics

    以下 JSON 樣本展示了系統服務(type: system)執行 RECYCLE_PARTITION 操作的事件詳情,其中 userIdentity.typesystem 表示該操作由阿里雲服務自動觸發:

    
    {
    "referencedResources": {
      "ACS::MaxCompute::Table": [
        "sale_detail"
      ],
      "ACS::MaxCompute::Project": [
        "bettergithubanalytics"
      ]
    },
    "userIdentity": {
      "accountId": "xxx",
      "type": "system",
      "userName": "maxcompute.aliyuncs.com"
    },
    "serviceName": "MaxCompute",
    "additionalEventData": {
      "TableName": "sale_detail",
      "Partition": "sale_date=2013/region=china",
      "ProjectName": "bettergithubanalytics",
      "OperationText": "RECYCLE_PARTITION"
    },
    "requestId": "884d49e0-7343-422e-899a-599628229617",
    "eventTime": "2022-12-11T03:21:11Z",
    "isGlobal": false,
    "acsRegion": "cn-beijing",
    "eventName": "ChangeTable"
    }

相關文檔

  • 關於建表時如何指定、修改表生命週期、修改表LastModifiedTime等操作,請參見表操作

  • 更多關於生命週期的操作,例如對已有表或建立表設定生命週期、禁止或恢複生命週期操作,請參見生命週期操作

  • 表分區的回收操作記錄也支援使用DataWorks的資料地圖功能查看,詳情請參見資料地圖概述。其顯示操作人帳號為MaxCompute系統帳號odps_user@aliyun.com,即名稱為maxcompute.aliyuncs.com的阿里雲服務。

    資料變更記錄表格展示分區操作的變更詳情,包含以下欄位:

    • 變更描述:例如 刪除分區:sale_date=2013/region=china

    • 變更類型:例如刪除分區

    • 粒度:例如 PARTITION

    • 時間:操作執行的時間

    • 操作人:執行操作的使用者帳號,例如 odps_user@aliyun.com