當要實現自動清理時序表中的歷史數據時,您可以使用數據生命周期(TTL)功能有效地管理時序數據,減少數據存儲空間,降低存儲成本。配置TTL后,如果希望延長數據保存時間,您可以修改TTL。
注意事項
數據清理后無法恢復,請謹慎操作。
通過配置TTL清理歷史數據前,如果需要備份歷史數據,請通過DataWorks數據集成服務導出時序數據到OSS中存儲。具體操作,請參見數據導出到OSS概述。
修改TTL前,您可以調用DescribeTimeseriesTable接口查看當前時序數據生命周期。
數據生命周期
時序模型中的數據包括時間線元數據和時序表數據,分別由時間線元數據表和時間線數據表存儲。表格存儲分別提供了時間線元數據生命周期和時序表數據生命周期用于管理相應數據。
時序表數據生命周期
時序表數據生命周期是時間線數據表的一個屬性,即時序表數據的保存時間,單位為秒。當時序表數據的保留時間超過設置的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進行數據生命周期修改操作。
關于在創建數據表時進行數據生命周期配置的具體操作,請參見時序表操作。
通過不同使用方式進行操作時支持的功能存在差異,請以實際為準。
使用控制臺
您可以使用控制臺修改時間線元數據生命周期或時序表數據生命周期。
修改時序表數據生命周期
進入實例管理頁面。
登錄表格存儲控制臺。
在頁面上方,選擇資源組和地域。
在概覽頁面,單擊實例名稱或者單擊實例操作的實例管理。
在實例詳情頁簽,單擊時序表列表頁簽。
在時序表列表頁簽,單擊時序表名稱。
在基本詳情頁簽的基本信息區域,單擊數據生命周期后的圖標。
在彈出的懸浮框中,修改數據生命周期。
時序表中數據的過期時間,單位為秒。取值必須大于等于86400秒(一天)或者必須為-1(數據永不過期)。
單擊確定。
修改時間線元數據生命周期
進入實例管理頁面。
登錄表格存儲控制臺。
在頁面上方,選擇資源組和地域。
在概覽頁面,單擊實例名稱或者單擊實例操作的實例管理。
在實例詳情頁簽,單擊時序表列表頁簽。
在時序表列表頁簽,單擊時序表名稱。
在基本詳情頁簽的基本信息區域,單擊時間線元數據生命周期后的圖標。
在彈出的懸浮框中,修改數據生命周期。
時序時間線表的時間線數據存活時間,單位為秒。取值必須大于等于604800秒(即7天)或者必須為-1(數據永不過期)。
單擊確定。
使用命令行工具
您可以使用命令行工具修改時序表數據生命周期。
執行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);
}
常見問題
相關文檔
分析存儲是針對時序場景進行定制優化的低成本存儲引擎。您可以使用分析存儲低成本存儲時序數據以及快速查詢和分析時序數據。更多信息,請參見時序分析存儲概述。