日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

數(shù)據(jù)版本和生命周期

使用數(shù)據(jù)版本以及數(shù)據(jù)生命周期(TTL)功能,您可以有效的管理數(shù)據(jù),減少數(shù)據(jù)存儲空間,降低存儲成本。

最大版本數(shù)

最大版本數(shù)(Max Versions)表示數(shù)據(jù)表中的屬性列能夠保留數(shù)據(jù)的最大版本個數(shù)。當屬性列中數(shù)據(jù)的版本個數(shù)超過設置的最大版本數(shù)時,系統(tǒng)會自動異步刪除較早版本的數(shù)據(jù)。

重要

當前表格存儲未限制最大版本數(shù)。但是出于性能與易用性考慮,建議控制版本數(shù)在500以內。

創(chuàng)建數(shù)據(jù)表時,如果未設置最大版本數(shù),則系統(tǒng)會使用默認值1,您也可以自定義屬性列的最大版本數(shù)。創(chuàng)建數(shù)據(jù)表后,您可以通過UpdateTable接口修改數(shù)據(jù)表的最大版本數(shù)。

超過最大版本數(shù)的數(shù)據(jù)版本為無效數(shù)據(jù),即使系統(tǒng)還未刪除數(shù)據(jù),用戶已無法讀取對應數(shù)據(jù)。

  • 當調小最大版本數(shù)時,如果數(shù)據(jù)版本個數(shù)超過新設的最大版本數(shù),系統(tǒng)會異步刪除較早版本的數(shù)據(jù)。

  • 當調大最大版本數(shù)時,如果系統(tǒng)還未刪除超過舊的最大版本數(shù)的對應版本數(shù)據(jù),且對應版本數(shù)據(jù)在新設的最大版本數(shù)范圍中,則對應版本的數(shù)據(jù)可以重新讀取。

版本號

為數(shù)據(jù)表配置最大版本數(shù)后,當您每次更新屬性列的值時,表格存儲均會為該值生成一個新版本,版本的值即為版本號(時間戳),單位為毫秒。

在屬性列中寫入數(shù)據(jù)時,如果未設置版本號,則系統(tǒng)會自動生成數(shù)據(jù)的版本號,您也可以自定義數(shù)據(jù)的版本號。 由于版本號的單位為毫秒,在進行TTL比較和有效版本偏差計算時,需要除以1000換算成秒。

  • 當由系統(tǒng)自動生成數(shù)據(jù)的版本號時,系統(tǒng)默認將當前時間的毫秒單位時間戳(從1970-01-01 00:00:00 UTC計算起的毫秒數(shù))作為屬性列值的版本號。

  • 當自定義數(shù)據(jù)的版本號時,屬性列值的版本號需要為64位的毫秒單位時間戳且在有效版本范圍內。

使用版本號,您可以實現(xiàn)以下功能:

  • 數(shù)據(jù)生命周期(TTL)

    版本號可以用于定義數(shù)據(jù)表中屬性列值的生命周期。當屬性列中數(shù)據(jù)的保留時長超過設置的TTL后,系統(tǒng)會自動異步清理對應版本號的數(shù)據(jù)。

    例如數(shù)據(jù)的版本號為1468944000000(即2016-07-20 00:00:00 UTC+8),如果設置數(shù)據(jù)表的TTL86400(一天),則該版本號的數(shù)據(jù)會在2016-07-21 00:00:00 UTC+8過期,系統(tǒng)會自動異步刪除該版本號的數(shù)據(jù)。

  • 每行數(shù)據(jù)的版本讀取

    讀取行數(shù)據(jù)時,您可以指定每列最多讀取的版本個數(shù)或者讀取的版本號范圍。更多信息,請參見讀取數(shù)據(jù)

數(shù)據(jù)生命周期

數(shù)據(jù)生命周期是數(shù)據(jù)表的一個屬性,即數(shù)據(jù)的保存時間,單位為秒。當屬性列中數(shù)據(jù)的保留時間超過設置的TTL時,系統(tǒng)會自動異步清理超過該屬性列的數(shù)據(jù)。如果一行中所有屬性列中數(shù)據(jù)的保留時間均超過了TTL,則系統(tǒng)會自動異步清理該行數(shù)據(jù)。

例如數(shù)據(jù)表的TTL設置為86400(一天),在2016-07-21 00:00:00 UTC+8時,數(shù)據(jù)表中所有版本號小于1468944000000(除以1000換算成秒后即2016-07-20 00:00:00 UTC+8)的屬性列數(shù)據(jù)均會過期,系統(tǒng)會自動異步清理對應過期數(shù)據(jù)。

創(chuàng)建數(shù)據(jù)表時,如果未設置TTL,則系統(tǒng)會使用默認值-1(表示數(shù)據(jù)永不過期),您也可以自定義TTL。創(chuàng)建數(shù)據(jù)表后,您可以通過UpdateTable接口修改TTL。

重要

數(shù)據(jù)表的TTL和二級索引的TTL是獨立的,且數(shù)據(jù)表的TTL必須大于等于二級索引的TTL。當數(shù)據(jù)表上存在二級索引且要修改數(shù)據(jù)表的TTL時,請根據(jù)實際情況進行操作。

  • 如果待設置的數(shù)據(jù)表的TTL小于其二級索引的TTL,請先使用SDK調用UpdateTable接口將二級索引的TTL修改為不大于目標值,再將數(shù)據(jù)表的TTL修改為目標值。

  • 如果待設置的數(shù)據(jù)表的TTL大于或等于二級索引的TTL,請直接將數(shù)據(jù)表的TTL修改為目標值。

超過TTL的過期數(shù)據(jù)為無效數(shù)據(jù),即使系統(tǒng)還未刪除數(shù)據(jù),用戶已無法讀取對應數(shù)據(jù)。

  • 當調小TTL時,數(shù)據(jù)表中可能會有數(shù)據(jù)過期,系統(tǒng)會異步刪除對應過期數(shù)據(jù)。

  • 當調大TTL時,如果系統(tǒng)還未刪除在舊的TTL之外以前版本的數(shù)據(jù),且對應版本數(shù)據(jù)在新設的TTL中,則對應版本的數(shù)據(jù)可以重新讀取。

有效版本偏差

為了避免寫入數(shù)據(jù)時,自定義的時間戳與當前時間的偏差超過了數(shù)據(jù)表的TTL,導致寫入的數(shù)據(jù)立即過期的問題,您可以設置有效版本偏差。

有效版本偏差(Max Version Offset)是指定的數(shù)據(jù)版本號與系統(tǒng)當前時間偏差的允許最大值,單位為秒。有效版本偏差為正整數(shù),可以大于1970-01-01 00:00:00 UTC時間到當前時間的秒數(shù)。

為了保證數(shù)據(jù)寫入成功,在寫入數(shù)據(jù)時系統(tǒng)會檢查屬性列數(shù)據(jù)的版本號。屬性列數(shù)據(jù)的有效版本范圍為[max{數(shù)據(jù)寫入時間-有效版本偏差,數(shù)據(jù)寫入時間-數(shù)據(jù)生命周期},數(shù)據(jù)寫入時間+有效版本偏差)。只有當屬性列數(shù)據(jù)的版本號(單位為毫秒)除以1000換算為秒后在有效版本范圍時,才能成功寫入數(shù)據(jù)。

例如當數(shù)據(jù)表的有效版本偏差為86400(一天),在2016-07-21 00:00:00 UTC+8時,只能寫入版本號大于1468944000000(換算成秒后即2016-07-20 00:00:00 UTC+8)并且小于1469116800000(換算成秒后即2016-07-22 00:00:00 UTC+8)的數(shù)據(jù)。當某一行的某個屬性列數(shù)據(jù)的版本號為1468943999000(換算成秒后即2016-07-19 23:59:59 UTC+8)時,該行數(shù)據(jù)寫入失敗。

創(chuàng)建數(shù)據(jù)表時,如果未設置有效版本偏差,則系統(tǒng)會使用默認值86400,您也可以自定義數(shù)據(jù)有效版本偏差。創(chuàng)建數(shù)據(jù)表后,您可以通過UpdateTable接口修改有效版本偏差。

使用方式

創(chuàng)建數(shù)據(jù)表時,您可以配置最大版本數(shù)、數(shù)據(jù)生命周期等參數(shù)。您也可以在創(chuàng)建數(shù)據(jù)表后修改數(shù)據(jù)版本、數(shù)據(jù)生命周期等。此處以創(chuàng)建數(shù)據(jù)表后修改相應配置為例介紹。

說明

關于在創(chuàng)建數(shù)據(jù)表時進行數(shù)據(jù)版本或者數(shù)據(jù)生命周期配置的具體操作,請參見數(shù)據(jù)表操作

使用控制臺

您可以使用控制臺修改表的最大版本數(shù)、數(shù)據(jù)生命周期、有效版本偏差等。

  1. 登錄表格存儲控制臺

  2. 概覽頁面,單擊實例操作列的實例管理

  3. 實例詳情頁簽的數(shù)據(jù)表列表區(qū)域,單擊數(shù)據(jù)表名稱。

  4. 基本詳情頁簽的基本信息區(qū)域,單擊修改表屬性

  5. 修改表屬性對話框,根據(jù)下表說明修改相應配置信息。

    參數(shù)

    描述

    數(shù)據(jù)生命周期

    數(shù)據(jù)表中數(shù)據(jù)的保存時間。當數(shù)據(jù)的保存時間超過設置的數(shù)據(jù)生命周期時,系統(tǒng)會自動清理超過數(shù)據(jù)生命周期的數(shù)據(jù)。單位為秒。

    取值:大于等于86400秒(一天)或-1(數(shù)據(jù)永不過期)。

    重要

    使用索引時,數(shù)據(jù)生命周期必須滿足如下條件中的任意一個。

    • 數(shù)據(jù)表的數(shù)據(jù)生命周期為-1(數(shù)據(jù)永不過期)。

    • 數(shù)據(jù)表的數(shù)據(jù)生命周期不為-1時,數(shù)據(jù)表為禁止更新狀態(tài)。

      如果已為數(shù)據(jù)表創(chuàng)建索引,則需要修改是否允許更新后,再修改數(shù)據(jù)生命周期。

    最大版本數(shù)

    數(shù)據(jù)表中的屬性列能夠保留數(shù)據(jù)的最大版本個數(shù)。當屬性列數(shù)據(jù)的版本個數(shù)超過設置的最大版本數(shù)時,系統(tǒng)會自動刪除較早版本的數(shù)據(jù)。

    取值必須為非0整數(shù)。

    重要

    使用索引時,最大版本數(shù)必須設置為1。如果已為數(shù)據(jù)表創(chuàng)建索引,則無法修改最大版本數(shù)。

    數(shù)據(jù)有效版本偏差

    指定的數(shù)據(jù)版本號與系統(tǒng)當前時間偏差的允許最大值,單位為秒。有效版本偏差為正整數(shù),可以大于1970-01-01 00:00:00 UTC時間到當前時間的秒數(shù)。

    只有當寫入數(shù)據(jù)所有列的版本號與寫入時時間的差值在數(shù)據(jù)有效版本偏差范圍內,數(shù)據(jù)才能成功寫入。

    屬性列的有效版本范圍為[max{數(shù)據(jù)寫入時間-有效版本偏差,數(shù)據(jù)寫入時間-數(shù)據(jù)生命周期},數(shù)據(jù)寫入時間+有效版本偏差)

    是否允許更新

    是否允許通過UpdateRow更新寫入數(shù)據(jù)。默認值為,表示允許通過UpdateRow更新寫入數(shù)據(jù)。

    如果已為數(shù)據(jù)表創(chuàng)建索引,當要修改數(shù)據(jù)生命周期時,您需要先設置是否允許更新再進行修改。

    重要

    當要使用多元索引生命周期功能時,您必須設置此參數(shù)為,即不允許通過UpdateRow更新寫入數(shù)據(jù)。關于多元索引生命周期的更多信息,請參見生命周期管理

  6. 單擊確定

使用命令行工具CLI

您可以使用命令行工具執(zhí)行如下命令進行配置修改。

執(zhí)行alter命令修改表的最大版本數(shù)或者數(shù)據(jù)生命周期。更多信息,請參見更新表

以下示例用于修改mytable數(shù)據(jù)表的數(shù)據(jù)生命周期為86400秒(即1天),最大版本數(shù)為1。

alter -t mytable --ttl 86400 --version 1

使用SDK

您可以使用Java SDKGo SDKPython SDKNode.js SDK.NET SDKPHP SDK更新表的最大版本數(shù)、數(shù)據(jù)生命周期、有效版本偏差等屬性。此處以Java SDK為例介紹更新表的使用。

以下示例用于更新數(shù)據(jù)表的最大版本數(shù)為5、數(shù)據(jù)生命周期為-1且有效版本偏差為86400。

private static void updateTable(SyncClient client) {
    //數(shù)據(jù)的過期時間,單位為秒,-1表示數(shù)據(jù)永不過期。
    int timeToLive = -1;
    //將最大版本數(shù)更新為5。
    int maxVersions = 5; 
    //將有效版本偏差更新為86400。單位為秒。
    int maxTimeDeviation=86400;
    TableOptions tableOptions = new TableOptions(timeToLive, maxVersions,maxTimeDeviation);
    //設置表名稱。
    UpdateTableRequest request = new UpdateTableRequest("<TABLE_NAME>");
    request.setTableOptionsForUpdate(tableOptions);
    client.updateTable(request);
}

計費說明

  • 使用數(shù)據(jù)多版本時,會產生基于版本號與各個版本數(shù)據(jù)的額外存儲費用。

  • 配置生命周期管理清理數(shù)據(jù),不會有額外的數(shù)據(jù)清理費用。但開啟生命周期管理功能后,會在各個屬性列增加時間戳作為的版本號數(shù)據(jù),有額外的存儲量產生。

更多信息,請參見數(shù)據(jù)存儲量

常見問題

修改數(shù)據(jù)表生命周期時報錯[table ttl] must be bigger than or equal search index ttl