全部產品
Search
文件中心

Tablestore:時序資料生命週期

更新時間:Jun 30, 2024

當要實現自動清理時序表中的歷史資料時,您可以使用資料生命週期(TTL)功能有效地管理時序資料,減少資料存放區空間,降低儲存成本。配置TTL後,如果希望延長資料儲存時間,您可以修改TTL。

注意事項

  • 資料清理後無法恢複,請謹慎操作。

    通過配置TTL清理歷史資料前,如果需要備份歷史資料,請通過DataWorksData Integration服務匯出時序資料到OSS中儲存。具體操作,請參見資料匯出到OSS概述

  • 修改TTL前,您可以調用DescribeTimeseriesTable介面查看當前時序資料生命週期。

資料生命週期

時序模型中的資料包括時間軸中繼資料和時序表資料,分別由時間軸中繼資料表和時間軸資料表格儲存體。Table Store分別提供了時間軸中繼資料生命週期和時序表資料生命週期用於管理相應資料。

時序表資料生命週期

時序表資料生命週期是時間軸資料表的一個屬性,即時序表資料的儲存時間,單位為秒。當時序表資料的保留時間超過設定的TTL時,系統會自動非同步清理超過TTL的資料。

例如資料表的TTL設定為86400(一天),在2016-07-21 00:00:00 UTC+8時,時序表中資料早於2016-07-20 00:00:00 UTC+8的時間軸均會到期,系統會自動非同步清理對應到期資料。

建立時序表時,如果未設定TTL,則系統會使用預設值-1(表示資料永不到期),您也可以自訂TTL。建立時序表後,您可以通過UpdateTimeseriesTable介面修改TTL。

超過TTL的到期資料為無效資料,即使系統還未刪除資料,使用者已無法查詢對應資料。

  • 當調小TTL時,時序表中可能會有資料到期,系統會非同步刪除對應到期資料。

  • 當調大TTL時,如果系統還未刪除在舊的TTL之外以前的時序表資料,且對應時序表資料在新設的TTL中,則對應時序表資料可以重新查詢。

時間軸中繼資料生命週期

時間軸中繼資料生命週期是時間軸中繼資料表的一個屬性,即時間軸中繼資料的儲存時間,單位為秒。當時間軸中繼資料的保留時間超過設定的TTL時,系統會自動非同步清理超過TTL的時間軸中繼資料,不會刪除時序表資料。

重要

當某些時間軸中繼資料到期,但是相應時間軸資料未到期時,通過GetTimeseriesData介面指定時間軸標識進行查詢時仍可查詢到時序表資料。

建立時序表時,如果未設定TTL,則系統會使用預設值-1(表示資料永不到期),您也可以自訂TTL。建立時序表後,您可以通過UpdateTimeseriesTable介面修改TTL。

重要

時間軸中繼資料中有一個時間軸中繼資料屬性列(_attributes)支援進行更新,但目前僅在時間軸中繼資料生命週期為-1(資料永不到期)時支援該屬性的更新。

如果要將時間軸中繼資料生命週期從-1修改為大於等於7天,請確認商務邏輯中不需要更新時間軸中繼資料屬性,並將時間軸中繼資料屬性是否允許更新配置為

如果要將時間軸中繼資料屬性是否允許更新配置為,則您需要同步將時間軸中繼資料生命週期調整為-1

超過TTL的到期資料為無效資料,即使系統還未刪除時間軸中繼資料,使用者已無法檢索到對應時間軸中繼資料。

  • 當調小TTL時,時間軸中繼資料表中可能會有時間軸中繼資料到期,系統會非同步刪除對應到期資料。

  • 當調大TTL時,如果系統還未刪除在舊的TTL之外以前的時間軸中繼資料,且對應時間軸中繼資料在新設的TTL中,則對應時間軸中繼資料可以重新檢索到。

使用方式

建立時序表時,您可以配置資料生命週期。您也可以在建立時序表後修改資料生命週期。此處以建立時序表後修改資料生命週期為例介紹。您可以使用控制台、命令列工具或者SDK進行資料生命週期修改操作。

說明
  • 關於在建立資料表時進行資料生命週期配置的具體操作,請參見時序表操作

  • 通過不同使用方式進行操作時支援的功能存在差異,請以實際為準。

使用控制台

您可以使用控制台修改時間軸中繼資料生命週期或時序表資料生命週期。

修改時序表資料生命週期

  1. 進入執行個體管理頁面。

    1. 登入Table Store控制台

    2. 在頁面上方,選擇資源群組和地區。

    3. 概覽頁面,單擊執行個體名稱或者單擊執行個體操作執行個體管理

  2. 執行個體詳情頁簽,單擊時序表列表頁簽。

  3. 時序表列表頁簽,單擊時序表名稱。

  4. 基本詳情頁簽的基本資料地區,單擊資料生命週期後的image.png表徵圖。

  5. 在彈出的懸浮框中,修改資料生命週期。

    時序表中資料的到期時間,單位為秒。取值必須大於等於86400秒(一天)或者必須為-1(資料永不到期)。

  6. 單擊確定

修改時間軸中繼資料生命週期

  1. 進入執行個體管理頁面。

    1. 登入Table Store控制台

    2. 在頁面上方,選擇資源群組和地區。

    3. 概覽頁面,單擊執行個體名稱或者單擊執行個體操作執行個體管理

  2. 執行個體詳情頁簽,單擊時序表列表頁簽。

  3. 時序表列表頁簽,單擊時序表名稱。

  4. 基本詳情頁簽的基本資料地區,單擊時間軸中繼資料生命週期後的image.png表徵圖。

  5. 在彈出的懸浮框中,修改資料生命週期。

    時序時間軸表的時間軸資料存活時間,單位為秒。取值必須大於等於604800秒(即7天)或者必須為-1(資料永不到期)。

  6. 單擊確定

使用命令列工具

您可以使用命令列工具修改時序表資料生命週期。

執行alter命令更新表資訊。更多資訊,請參見更新表

以下樣本用於修改當前表的資料生命週期為86400秒(即1天)。

alter --ttl 86400 --ts

使用SDK

您可以使用SDK修改時間軸中繼資料生命週期或時序表資料生命週期。

修改時序表資料生命週期

以下樣本用於更新指定時序表的TTL為3年。

private static void updateTimeseriesTable(TimeseriesClient client) {
    // 填寫時序表名稱。
    String tableName = "<TIMESERIES_TABLE>";
    UpdateTimeseriesTableRequest updateTimeseriesTableRequest = new UpdateTimeseriesTableRequest(tableName);
    // 更新TTL為3年。
    updateTimeseriesTableRequest.setTimeseriesTableOptions(new TimeseriesTableOptions(86400 * 365 * 3)); 
    client.updateTimeseriesTable(updateTimeseriesTableRequest);

    DescribeTimeseriesTableResponse describeTimeseriesTableResponse = client.describeTimeseriesTable(new DescribeTimeseriesTableRequest(tableName));
    TimeseriesTableMeta tableMeta = describeTimeseriesTableResponse.getTimeseriesTableMeta();
    // 查看更新後時序表的TTL配置。
    System.out.println(tableMeta.getTimeseriesTableOptions().getTimeToLive()); 
}

修改時間軸中繼資料生命週期

以下樣本用於更新指定時序表的時間軸中繼資料TTL為3年。

private static void updateTimeseriesMetaTableTTL(TimeseriesClient client) {
    // 填寫時序表名稱。
    String tableName = "<TIMESERIES_TABLE>";
    UpdateTimeseriesTableRequest updateTimeseriesTableRequest = new UpdateTimeseriesTableRequest(tableName);
    // 更新TTL為3年。
    TimeseriesMetaOptions options = new TimeseriesMetaOptions();
    options.setMetaTimeToLive(86400 * 365 * 3);
    updateTimeseriesTableRequest.setTimeseriesMetaOptions(options);
    client.updateTimeseriesTable(updateTimeseriesTableRequest);
}

常見問題

如何刪除時序資料