

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

# 建立全域資料表 (2017.11.29 版）
<a name="globaltables.tutorial"></a>

**重要**  
 本文件適用於全域資料表 2017.11.29 版 (舊版)，新的全域資料表應避免使用此文件。客戶應盡可能使用 [2019.11.21 版全域資料表 (目前版本)](GlobalTables.md)，因為相較於 2017.11.29 (舊版)，其提供更大的彈性、更高的效率，且消耗的寫入容量更少。  
若要判斷您使用的是哪個版本，請參閱 [判斷全域資料表版本](V2globaltables_versions.md#globaltables.DetermineVersion)。若要將現有全域資料表從 2017.11.29 版 (舊版) 更新至 2019.11.21 版 (目前版本)，請參閱 [DynamoDB 全域資料表版本](V2globaltables_versions.md)。

本節說明如何使用 Amazon DynamoDB 主控台或 AWS Command Line Interface () 建立全域資料表AWS CLI。

**Topics**
+ [建立全域資料表 (主控台)](#creategt_console)
+ [建立全域資料表 (AWS CLI)](#creategt_cli)

## 建立全域資料表 (主控台)
<a name="creategt_console"></a>

請遵循下列步驟，使用主控台建立全域資料表。下列範例使用美國及歐洲的複本列表，建立全域資料表。

1. 在 [https://console.aws.amazon.com/dynamodb/home](https://console.aws.amazon.com/dynamodb/home) 開啟 DynamoDB 主控台。針對此範例，請選擇 us-east-2 (美國東部俄亥俄州) 區域。

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

1. 選擇 **Create Table** (建立資料表)。

   對於 **Table name** (資料表名稱)，請輸入 **Music**。

   針對 **Primary key (主索引鍵)**，輸入 **Artist**。選擇 **Add sort key** (新增排序索引鍵)，然後輸入 **SongTitle**。(**Artist** 和 **SongTitle** 都必須是字串。)

   若要建立資料表，請選擇 **Create** (建立)。此資料表會做為新全域資料表中的第一個複本資料表。這是您稍後新增其他複本資料表的原型。

1. 選擇 **Global Tables** (全域資料表) 索引標籤，然後選擇 **Create a version 2017.11.29 (Legacy) replica** (建立版本 2017.11.29 (舊版) 複本)。  
![\[顯示「建立版本 2017.11.29 (舊版) 複本」按鈕的主控台螢幕擷取畫面。\]](http://docs.aws.amazon.com/zh_tw/amazondynamodb/latest/developerguide/images/GlobalTables-old.png)

1. 從 **Available replication Regions** (可用的複製區域) 下拉式清單，選擇 **US West (Oregon)** (美國西部 (奧勒岡))。

   主控台會檢查，確認所選取的區域中沒有同名的資料表。若有同名的資料表，您必須先刪除現有的資料表，才可在該區域中建立新的複本資料表。

1. 選擇 **Create replica** (建立複本)。這會啟動在美國西部 (奧勒岡) 建立資料表的程序。

   所選資料表的 **Global Table** (全域資料表) 標籤 (及所有其他複本資料表)，會顯示該資料表已複寫到多個區域。

1. 您現在可以新增其他區域，複寫及同步美國與歐洲的全域資料表。若要執行此作業，請重複步驟 5，但這次請改為指定 **Europe (Frankfurt)** (歐洲 (法蘭克福))，而非 **US West (Oregon)** (美國西部 (奧勒岡))。

1. 您仍然應該 AWS 管理主控台 在美國東部 （俄亥俄） 區域使用 。選取左側導覽功能表中的 **Items** (項目)，選取 **Music** (音樂) 資料表，然後選擇 **Create Item** (建立項目)。

   1. 針對 **Artist** (藝人)，輸入 **item\$11**。

   1. 針對 **SongTitle** (歌曲名稱)，輸入 **Song Value 1**。

   1. 若要寫入該項目，請選擇 **Create item** (建立項目)。

1. 稍待片刻之後，該項目將會複寫到您全域資料表中的所有三個區域。若要確認，請在主控台中移至右上角的區域選擇器，然後選擇 **Europe (Frankfurt)** (歐洲 (法蘭克福))。歐洲 (法蘭克福) 中的 `Music` 資料表此時應已包含新的項目。

1. 重複步驟 9，然後選擇 **US West (Oregon)** (美國西部 (奧勒岡)) 以驗證該區域中的複寫。

## 建立全域資料表 (AWS CLI)
<a name="creategt_cli"></a>

​請遵循下列步驟，使用 AWS CLI​ 建立全域資料表 `Music`。以下範例會建立全域資料表，並在美國及歐洲皆擁有複本資料表。

1. 在美國東部 (俄亥俄) 建立新的資料表 (`Music`)，並啟用 DynamoDB Streams (`NEW_AND_OLD_IMAGES`)。

   ```
   aws dynamodb create-table \
       --table-name Music \
       --attribute-definitions \
           AttributeName=Artist,AttributeType=S \
           AttributeName=SongTitle,AttributeType=S \
       --key-schema \
           AttributeName=Artist,KeyType=HASH \
           AttributeName=SongTitle,KeyType=RANGE \
       --provisioned-throughput \
           ReadCapacityUnits=10,WriteCapacityUnits=5 \
       --stream-specification StreamEnabled=true,StreamViewType=NEW_AND_OLD_IMAGES \
       --region us-east-2
   ```

1. 在美國東部 (維吉尼亞北部) 建立相同的 `Music` 資料表。

   ```
   aws dynamodb create-table \
       --table-name Music \
       --attribute-definitions \
           AttributeName=Artist,AttributeType=S \
           AttributeName=SongTitle,AttributeType=S \
       --key-schema \
           AttributeName=Artist,KeyType=HASH \
           AttributeName=SongTitle,KeyType=RANGE \
       --provisioned-throughput \
           ReadCapacityUnits=10,WriteCapacityUnits=5 \
       --stream-specification StreamEnabled=true,StreamViewType=NEW_AND_OLD_IMAGES \
       --region us-east-1
   ```

1. 建立全域資料表 (`Music`)，其中包含 `us-east-2` 和 `us-east-1` 區域中的複本列表。

   ```
   aws dynamodb create-global-table \
       --global-table-name Music \
       --replication-group RegionName=us-east-2 RegionName=us-east-1 \
       --region us-east-2
   ```
**注意**  
 全域資料表名稱 (`Music`) 必須與每個複本列表 (`Music`) 的名稱相符。如需詳細資訊，請參閱[全域資料表的最佳實務](globaltables-bestpractices.md)。

1. 在歐洲 (愛爾蘭) 中建立另一個資料表，其設定與您在步驟 1 和步驟 2 中建立的資料表設定相同。

   ```
   aws dynamodb create-table \
       --table-name Music \
       --attribute-definitions \
           AttributeName=Artist,AttributeType=S \
           AttributeName=SongTitle,AttributeType=S \
       --key-schema \
           AttributeName=Artist,KeyType=HASH \
           AttributeName=SongTitle,KeyType=RANGE \
       --provisioned-throughput \
           ReadCapacityUnits=10,WriteCapacityUnits=5 \
       --stream-specification StreamEnabled=true,StreamViewType=NEW_AND_OLD_IMAGES \
       --region eu-west-1
   ```

   完成此步驟後，將新資料表新增至 `Music` 全域資料表。

   ```
   aws dynamodb update-global-table \
       --global-table-name Music \
       --replica-updates 'Create={RegionName=eu-west-1}' \
       --region us-east-2
   ```

1. 若要確認複寫正常運作，請將項目新增到美國東部 (俄亥俄) 中的 `Music` 資料表。

   ```
   aws dynamodb put-item \
       --table-name Music \
       --item '{"Artist": {"S":"item_1"},"SongTitle": {"S":"Song Value 1"}}' \
       --region us-east-2
   ```

1. 稍待幾秒鐘，然後檢查該項目是否已成功複寫到美國東部 (維吉尼亞北部) 與歐洲 (愛爾蘭)。

   ```
   aws dynamodb get-item \
       --table-name Music \
       --key '{"Artist": {"S":"item_1"},"SongTitle": {"S":"Song Value 1"}}' \
       --region us-east-1
   ```

   ```
   aws dynamodb get-item \
       --table-name Music \
       --key '{"Artist": {"S":"item_1"},"SongTitle": {"S":"Song Value 1"}}' \
       --region eu-west-1
   ```