

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

# DynamoDB 全域資料表版本
<a name="V2globaltables_versions"></a>

DynamoDB 全域資料表有兩種版本可用：全域資料表 2019.11.21 版 (目前版本) 和全域資料表 2017.11.29 版 (舊版)。建議您使用全域資料表 2019.11.21 版 (目前版本)，因為其比 2017.11.29 版 (舊版) 更易於使用、支援更多區域，且大多數的工作負載成本更低。

## 判斷全域資料表版本
<a name="globaltables.DetermineVersion"></a>

### 使用 判斷版本 AWS CLI
<a name="globaltables.CLI"></a>

#### 識別全域資料表 2019.11.21 版 (目前版本) 複本
<a name="globaltables.CLI.current"></a>

若要判斷資料表是否為全域資料表 2019.11.21 版 (目前版本) 複本，請針對資料表調用 `describe-table` 命令。如果輸出的 `GlobalTableVersion` 屬性含 "2019.11.21" 值，則資料表為 2019.11.21 版 (目前版本) 全域資料表複本。

`describe-table` 範例 CLI 命令：

```
aws dynamodb describe-table \
--table-name users \
--region us-east-2
```

(簡略版) 輸出的 `GlobalTableVersion` 屬性包含 "2019.11.21" 值，因此這個資料表是 2019.11.21 版 (目前版本) 全域資料表複本。

```
{
    "Table": {
        "AttributeDefinitions": [
            {
                "AttributeName": "id",
                "AttributeType": "S"
            },
            {
                "AttributeName": "name",
                "AttributeType": "S"
            }
        ],
        "TableName": "users",
        ...
        "GlobalTableVersion": "2019.11.21",
        "Replicas": [
            {
                "RegionName": "us-west-2",
                "ReplicaStatus": "ACTIVE",
            }
        ],
        ...
    }
}
```

#### 識別全域資料表 2017.11.29 版 (舊版) 複本
<a name="globaltables.CLI.legacy"></a>

全域資料表 2017.11.29 版 (舊版) 使用一組專用命令進行全域資料表管理。若要判斷資料表是否為全域資料表 2017.11.29 版 (舊版) 複本，請針對資料表調用 `describe-global-table` 命令。如果您收到成功回應，則資料表是 2017.11.29 版 (舊版) 全域資料表複本。如果 `describe-global-table` 命令傳回 `GlobalTableNotFoundException` 錯誤，則資料表不是 2017.11.29 版 (舊版) 複本。

`describe-global-table` 範例 CLI 命令：

```
aws dynamodb describe-global-table \
--table-name users \
--region us-east-2
```

命令傳回成功回應，因此這個資料表是 2017.11.29 版 (舊版) 全域資料表複本。

```
{
    "GlobalTableDescription": {
        "ReplicationGroup": [
            {
                "RegionName": "us-west-2"
            },
            {
                "RegionName": "us-east-2"
            }
        ],
        "GlobalTableArn": "arn:aws:dynamodb::123456789012:global-table/users",
        "CreationDateTime": "2025-06-10T13:55:53.630000-04:00",
        "GlobalTableStatus": "ACTIVE",
        "GlobalTableName": "users"
    }
}
```

### 使用 DynamoDB 主控台判斷版本
<a name="globaltables.console"></a>

若要識別全域資料表複本的版本，請執行下列動作：

1. 在 [https://console.aws.amazon.com/dynamodb/home](https://console.aws.amazon.com/dynamodb/home) 開啟 DynamoDB 主控台。

1. 在主控台左側的導覽窗格中，選擇 **Tables** (資料表)。

1. 選擇您要識別全域資料表版本的資料表。

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

   *摘要*區段會顯示所使用的全域資料表版本。

## 舊版和目前版本之間的行為差異
<a name="DiffLegacyVsCurrent"></a>

下列清單說明全域資料表舊版和目前版本之間的行為差異。
+ 相較於 2017.11.29 版 (舊版)，2019.11.21 版 (目前版本) 進行數個 DynamoDB 操作時耗用的寫入容量較少，因此，對大多數客戶來說更具成本效益。這些 DynamoDB 操作的差異如下：
  + 針對區域中的 1KB 項目調用 [PutItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html) 並複寫到其他區域時，2017.11.29 版 (舊版) 每個區域需要 2 個 rWRU，但 2019.11.21 版 (目前版本) 只需要 1 個 rWRU。
  + 針對 1KB 項目調用 [UpdateItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html) 時，2017.11.29 版 (舊版) 來源區域需要 2 個 rWRU，且每個目的地區域需要 1 個 rWRU，但在 2019.11.21 版 (目前版本) 的來源和目的地區域都只需要 1 個 rWRU。
  + 針對 1KB 項目調用 [DeleteItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html) 時，2017.11.29 版 (舊版) 來源區域需要 1 個 rWRU，且每個目的地區域需要 2 個 rWRU，但在 2019.11.21 版 (目前版本) 的來源或目的地區域都只需要 1 個 rWRU。

  下表列出針對兩個區域中 1KB 項目 2017.11.29 版 (舊版) 和 2019.11.21 版 (目前版本) 資料表耗用的 rWRU。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/amazondynamodb/latest/developerguide/V2globaltables_versions.html)
+ 2017.11.29 版 （舊版） 僅適用於 11 AWS 區域。不過，2019.11.21 版 (目前版本) 可在所有 AWS 區域中使用。
+ 您可以先建立一組空白區域資料表，然後調用 [CreateGlobalTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateGlobalTable.html) API 構成全域資料表，藉此建立 2017.11.29 版 (舊版) 全域資料表。您可以調用 [UpdateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTable.html) API 將複本新增至現有區域資料表，藉此建立 2019.11.21 版 (目前版本) 全域資料表。
+ 使用 2017.11.29 版 (舊版) 時，您必須先清空資料表中的所有複本，才能在新區域中新增複本 (包括建立期間)。若使用 2019.11.21 版 (目前版本)，即使資料表已包含資料，仍支援將複本新增至區域，或移除複本。
+ 2017.11.29 版 (舊版) 使用下列專用控制平面 API 來管理複本：
  + [CreateGlobalTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateGlobalTable.html)
  + [DescribeGlobalTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeGlobalTable.html)
  + [DescribeGlobalTableSettings](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeGlobalTableSettings.html)
  + [ListGlobalTables](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ListGlobalTables.html)
  + [UpdateGlobalTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateGlobalTable.html)
  + [UpdateGlobalTableSettings](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateGlobalTableSettings.html)

  2019.11.21 版 (目前版本) 使用 [DescribeTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeTable.html) 和 [UpdateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTable.html) API 來管理複本。
+ 針對每個寫入，2017.11.29 版 (舊版) 會發布兩個 DynamoDB Streams 記錄；2019.11.21 版 (目前版本) 只會發布一個 DynamoDB Streams 記錄。
+ 2017.11.29 版 (舊版) 會填入並更新 `aws:rep:deleting`、`aws:rep:updateregion` 和 `aws:rep:updatetime` 屬性。2019.11.21 版 (目前版本) 不會填入或更新這些屬性。
+ 2017.11.29 版 (舊版) 不會跨複本同步 [使用 DynamoDB 的存留時間 (TTL) 功能](TTL.md) 設定。2019.11.21 版 (目前版本) 會跨複本同步 TTL 設定。
+ 2017.11.29 版 (舊版) 不會將 TTL 刪除複寫至其他複本。2019.11.21 版 (目前版本) 會將 TTL 刪除複寫至所有複本。
+ 2017.11.29 版 (舊版) 不會跨複本同步[自動擴展](AutoScaling.md)設定。2019.11.21 版 (目前版本) 會跨複本同步自動擴展設定。
+ 2017.11.29 版 (舊版) 不會跨複本同步[全域次要索引 (GSI)](GSI.md) 設定。2019.11.21 版 (目前版本) 會跨複本同步 GSI 設定。
+ 2017.11.29 版 (舊版) 不會跨複本同步[靜態加密](encryption.usagenotes.md)設定。2019.11.21 版 (目前版本)會跨複本同步靜態加密設定。
+ 2017.11.29 版 (舊版) 發布 `PendingReplicationCount` 指標。2019.11.21 版 (目前版本) 不會發布此指標。

## 升級到目前版本
<a name="upgrading-to-current-version"></a>

### 全域資料表升級所需的許可
<a name="V2globaltables_versions.Notes-permissions"></a>

若要升級至 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"
            ]
        }
    ]
}
```

### 升級期間預期會發生的情況
<a name="V2GlobalTablesUpgradeExpectations"></a>
+ 升級時，所有全域資料表複本會繼續處理讀取和寫入流量。
+ 升級程序需要幾分鐘到幾個小時，取決於資料表大小和複本數量而定。
+ 在升級過程中，[TableStatus](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_TableDescription.html#DDB-Type-TableDescription-TableStatus) 的值會從 `ACTIVE` 變更為 `UPDATING`。您可以透過叫用 [DescribeTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeTable.html) API 或使用 DynamoDB 主控台中的資料表檢視來檢視**資料表**的狀態。
+ 在升級資料表時，自動擴展不會調整全域資料表的佈建容量設定。強烈建議您在升級期間將資料表設為[隨需](capacity-mode.md#capacity-mode-on-demand)容量模式。
+ 如果您選擇在升級期間使用[佈建](provisioned-capacity-mode.md)容量搭配自動擴展，則必須提高政策的讀取和寫入輸送量下限，以容納升級期間預期增加的流量，以免限流情況發生。
+ 在升級過程中，`ReplicationLatency` 指標可以暫時回報延遲峰值，或停止回報指標資料。如需詳細資訊，請參閱 [ReplicationLatency](metrics-dimensions.md#ReplicationLatency)。
+ 升級程序完成時，資料表狀態會變更為 `ACTIVE`。

### 升級前、中、後的 DynamoDB Streams 行為
<a name="V2GlobalTablesUpgradeDDBStreamsBehavior"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/amazondynamodb/latest/developerguide/V2globaltables_versions.html)

### 升級到 2019.11.21 版(目前版本)
<a name="V2globaltables_versions.upgrade"></a>

請執行下列步驟，使用 AWS 管理主控台升級 DynamoDB 全域資料表版本。

**將全域資料表升級至 2019.11.21 版 (目前版本)**

1. 在 [https://console.aws.amazon.com/dynamodb/home](https://console.aws.amazon.com/dynamodb/home) 開啟 DynamoDB 主控台。

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

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

1. 選擇 **Update version** (更新版本)。  
![\[主控台螢幕擷取畫面，其中顯示 Update (更新) 版本按鈕。\]](http://docs.aws.amazon.com/zh_tw/amazondynamodb/latest/developerguide/images/GlobalTables-upgrade.png)

1. 閱讀並同意新的要求，然後選擇 **Update version** (更新版本)。

1. 升級程序完成之後，主控台上出現的全域資料表版本會變更為 **2019.11.21**。