將 YOUR DynamoDB 全域資料表從 2017.11.29 版 (舊版) 升級至 2019.11.21 版 (目前) - Amazon DynamoDB

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將 YOUR DynamoDB 全域資料表從 2017.11.29 版 (舊版) 升級至 2019.11.21 版 (目前)

注意

有兩種版本的 DynamoDB 全域資料表可供使用:全域資料表版本 2019.11.21 (目前)全域資料表版本 2017.11.29 (舊版)。客戶應盡可能使用 2019.11.21 版 (目前),因為它比 2017.11.29 (舊版) 提供更高的彈性、更高的效率和較少的寫入容量。若要判斷您使用的版本,請參閱 判斷您正在使用的 DynamoDB 全域資料表版本

本節說明如何使用 DynamoDB 主控台將全域資料表升級至 2019.11.21 版 (目前)。從 2017.11.29 版 (舊版) 升級至 2019.11.21 版 (目前) 是一次性動作,您無法將其還原。目前,您只能使用主控台升級全域資料表。

Legacy 和目前版本的行為差異

下列清單說明全域資料表的舊版和目前版本之間行為的差異。

  • 相較於 2019.11.21 版 (舊版), 版 2017.11.29(目前) 對數個 DynamoDB 操作的寫入容量較少,因此對大多數客戶來說更具成本效益。這些 DynamoDB 操作的差異如下:

    • 叫用 區域中PutItem的 1KB 項目並複寫至其他 區域需要 rWRUs 2017.11.29 (舊版) 每個區域 2 個項目,但 2019.11.21 (目前) 只需要 1 rWRU。

    • 1KB 項目UpdateItem的叫用需要 rWRUs 來源區域中的 2 個,而 2017.11.29 (舊版) 每個目的地區域 1 個 rWRU,但來源和目的地區域 2019.11.21 (目前) 只需要 1 個 rWRU。

    • 在來源區域中調用 DeleteItem 1KB 項目需要 1 rWRU,在 2017.11.29 (舊版) 的每個 rWRUs 目的地區域需要 2 r,但在來源或目的地區域只需要 1 rWRU,在 2019.11.21 (目前)。

    下表顯示兩個區域中 1KB 項目的 2017.11.29 (舊版) 和 2019.11.21 (目前) 資料表的 rWRU 消耗量。

    作業 2017.11.29 (舊版) 2019.11.21 (目前) 節省
    PutItem 4 rWRUs 2 rWRUs 50%
    UpdateItem 3 rWRUs 2 rWRUs 33%
    DeleteItem 3 rWRUs 2 rWRUs 33%
  • 2017.11.29 版 (舊版) 僅適用於 11 版 AWS 區域。不過,2019.11.21 版 (目前) 可在所有 中使用 AWS 區域。

  • 您可以先建立一組空的區域資料表,然後叫用 CreateGlobalTableAPI來形成全域資料表,藉此建立 2017.11.29 版 (舊版) 全域資料表。您可以透過叫用 UpdateTableAPI將複本新增至現有區域資料表來建立 2019.11.21 版 (目前) 全域資料表。

  • 2017.11.29 版 (舊版) 會要求您先清空資料表中的所有複本,然後再在新區域中新增複本 (包括建立期間)。2019.11.21 版 (目前) 支援您在已包含資料的資料表上新增和移除複本至區域。

  • 2017.11.29 版 (舊版) 使用下列專用控制平面集APIs來管理複本:

    2019.11.21 版 (目前) 使用 DescribeTableUpdateTableAPIs來管理複本。

  • 2017.11.29 版 (舊版) 會針對每次寫入發佈兩個 DynamoDB Streams 記錄。2019.11.21 版 (目前) 只會針對每次寫入發佈一個 DynamoDB Streams 記錄。

  • 2017.11.29 版 (舊版) 會填入和更新 aws:rep:deletingaws:rep:updateregionaws:rep:updatetime 屬性。2019.11.21 版 (目前) 不會填入或更新這些屬性。

  • 2017.11.29 版 (舊版) 不會同步複本之間的在 DynamoDB 中使用存留時間 (TTL)設定。2019.11.21 版 (目前) 會同步複本之間的TTL設定。

  • 2017.11.29 版 (舊版) 不會將TTL刪除複寫至其他複本。2019.11.21 版 (目前) 會將TTL刪除複寫至所有複本。

  • 2017.11.29 版 (舊版) 不會同步複本之間的自動擴展設定。2019.11.21 版 (目前) 會同步複本之間的自動擴展設定。

  • 2017.11.29 版 (舊版) 不會同步複本之間的全域次要索引 (GSI) 設定。2019.11.21 版 (目前) 會同步複本之間的GSI設定。

  • 2017.11.29 版 (舊版) 不會同步跨複本的靜態加密設定。2019.11.21 版 (目前) 會同步跨複本的靜態加密設定。

  • 2017.11.29 版 (舊版) 發佈PendingReplicationCount指標。2019.11.21 版 (目前) 不會發佈此指標。

升級先決條件

開始升級至 2019.11.21 版 (目前) 全域資料表之前,您必須先滿足下列先決條件:

全域資料表升級的必要許可

若要升級至 2019.11.21 版 (目前),您必須在具有複本的所有區域中擁有dynamodb:UpdateGlobalTableversion許可。除了存取 DynamoDB 主控台和檢視資料表所需的許可之外,還需要這些許可。

下列IAM政策授予許可,將任何全域資料表升級至 2019.11.21 版 (目前)。

{ "version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dynamodb:UpdateGlobalTableversion", "Resource": "*" } ] }

下列IAM政策僅授予許可,將兩個區域中具有複本的Music全域資料表升級至 2019.11.21 版 (目前)。

{ "version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dynamodb:UpdateGlobalTableversion", "Resource": [ "arn:aws:dynamodb::123456789012:global-table/Music", "arn:aws:dynamodb:ap-southeast-1:123456789012:table/Music", "arn:aws:dynamodb:us-east-2:123456789012:table/Music" ] } ] }

升級期間預期會發生的情況

  • 升級時,所有全域資料表複本將繼續處理讀取和寫入流量。

  • 根據資料表大小和複本數量,升級程序需要幾分鐘到幾個小時。

  • 在升級過程中, 的值TableStatus會從 變更為 ACTIVE UPDATING。您可以透過叫用 DescribeTable API或使用 DynamoDB 主控台 中的資料表檢視來檢視資料表的狀態。

  • 升級資料表時,自動擴展不會調整全域資料表的佈建容量設定。強烈建議您在升級期間將資料表設定為隨需容量模式。

  • 如果您選擇在升級期間使用佈建容量模式搭配自動擴展,則必須增加政策的最低讀取和寫入輸送量,以適應任何預期的流量增加,以避免在升級期間調節。

  • 升級程序完成後,您的資料表狀態會變更為 ACTIVE

升級之前、期間和之後的 DynamoDB Streams 行為

作業 複本區域 升級前的行為 升級期間的行為 升級後的行為

放置或更新

來源

時間戳記群體使用 發生UpdateItem 時間戳記群體使用 發生PutItem 不會產生客戶可見時間戳記。
會產生兩個串流記錄。第一個記錄包含客戶書面屬性。第二個記錄包含 aws:rep:* 屬性。 會產生兩個串流記錄。第一個記錄包含客戶書面屬性。第二個記錄包含 aws:rep:* 屬性。 會產生包含客戶寫入屬性的單一串流記錄。
每次客戶寫入 rWCUs 都會消耗兩個。 每次客戶寫入 rWCUs 都會消耗兩個。 每次客戶寫入都會消耗一個 rWCU。
ReplicationLatencyPendingReplicationCount指標發佈於 CloudWatch。 ReplicationLatencyPendingReplicationCount指標發佈於 CloudWatch。 ReplicationLatency 指標發佈於 CloudWatch。

目的地

複寫使用 發生 PutItem。 複寫使用 發生 PutItem。 複寫使用 發生 PutItem。
會產生單一串流記錄,其中包含客戶編寫的屬性和aws:rep:*屬性。 會產生單一串流記錄,其中包含客戶編寫的屬性和aws:rep:*屬性。 會產生單一串流記錄,其中僅包含客戶撰寫的屬性,沒有複寫屬性。
如果項目存在於目的地區域中,則會消耗一個 rWCU。如果項目不存在於目的地區域中, rWCUs 則會消耗兩個。 如果項目存在於目的地區域中,則會消耗一個 rWCU。如果項目不存在於目的地區域中, rWCUs 則會消耗兩個。 每次客戶寫入都會消耗一個 rWCU。
ReplicationLatencyPendingReplicationCount指標發佈於 CloudWatch。 ReplicationLatencyPendingReplicationCount指標發佈於 CloudWatch。 ReplicationLatency 指標發佈於 CloudWatch。

刪除

來源

使用 刪除時間戳記較小的任何項目DeleteItem 使用 刪除時間戳記較小的任何項目 DeleteItem。 使用 刪除時間戳記較小的任何項目 DeleteItem。
會產生單一串流記錄,其中包含客戶編寫的屬性和aws:rep:*屬性。 會產生單一串流記錄,其中包含客戶編寫的屬性和aws:rep:*屬性。 會產生單一串流記錄,其中包含客戶撰寫的屬性。
每個刪除的客戶都會使用一個 rWCU。 每個刪除的客戶都會使用一個 rWCU。 每個刪除的客戶都會使用一個 rWCU。
ReplicationLatencyPendingReplicationCount指標發佈於 CloudWatch。 ReplicationLatencyPendingReplicationCount指標發佈於 CloudWatch。 ReplicationLatency 指標發佈於 CloudWatch。

目的地

執行兩階段刪除:

  • 在階段 1 中, UpdateItem 設定刪除旗標。

  • 在階段 2 中, DeleteItem 刪除項目。

使用 刪除項目 DeleteItem。 使用 刪除項目 DeleteItem。
會產生兩個串流記錄。第一個記錄包含 aws:rep:deleting 欄位的變更。第二個記錄包含客戶撰寫的屬性和aws:rep:*屬性。 會產生單一串流記錄,其中包含客戶撰寫的屬性。 會產生單一串流記錄,其中包含客戶撰寫的屬性。
每個刪除的客戶 rWCUs 會耗用兩個。 每個刪除的客戶都會使用一個 rWCU。 每個刪除的客戶都會使用一個 rWCU。
ReplicationLatencyPendingReplicationCount指標發佈於 CloudWatch。 ReplicationLatency 指標發佈於 CloudWatch。 ReplicationLatency 指標發佈於 CloudWatch。

升級到 2019.11.21 版 (目前)

執行下列步驟,使用 升級您的 DynamoDB 全域資料表版本 AWS Management Console。

將全域資料表升級至 2019.11.21 版 (目前)
  1. 開啟家用 DynamoDB 主控台 。 https://console.aws.amazon.com/dynamodb/

  2. 在主控台左側的導覽窗格中,選擇資料表 ,然後選擇您要升級至 2019.11.21 版 (目前) 的全域資料表。

  3. 選擇 Global Tables (全域資料表) 標籤。

  4. 選擇 Update version (更新版本)。

    主控台螢幕擷取畫面,其中顯示 Update (更新) 版本按鈕。
  5. 閱讀並同意新的要求,然後選擇 Continue (繼續)。

  6. 升級程序完成後,主控台上出現的全域資料表版本會變更為 2019.11.21