本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立全域資料表
重要
本文件適用於全域資料表 2017.11.29 版 (舊版),新的全域資料表應避免使用此文件。客戶應盡可能使用全域表版本 2019.11.21 (目前版本),因為它比 2017.11.29 (舊版) 提供更大的彈性、更高的效率以及更少的寫入容量。
若要判斷您使用的是哪個版本,請參閱 判斷您正在使用的 DynamoDB 全域資料表版本。若要將現有全域資料表從 2017.11.29 版更新至 2019.11.21 版 (目前),請參閱 升級全域資料表。
本節說明如何使用 Amazon DynamoDB 主控台或 AWS Command Line Interface (AWS CLI) 建立全域資料表。
建立全域資料表 (主控台)
請遵循下列步驟,使用主控台建立全域資料表。下列範例使用美國及歐洲的複本列表,建立全域資料表。
-
在 https://console.aws.amazon.com/dynamodb/home
開啟 DynamoDB 主控台。針對此範例,請選擇 us-east-2 (美國東部俄亥俄州) 區域。 -
在主控台左側的導覽窗格中,選擇 Tables (資料表)。
-
選擇 Create Table (建立資料表)。
對於 Table name (資料表名稱),請輸入
Music
。針對 Primary key (主索引鍵),輸入
Artist
。選擇 Add sort key (新增排序索引鍵),然後輸入SongTitle
。(Artist
和SongTitle
都必須是字串。)若要建立資料表,請選擇 Create (建立)。此資料表會做為新全域資料表中的第一個複本資料表。這是您稍後新增其他複本資料表的原型。
-
選擇 Global Tables (全域資料表) 索引標籤,然後選擇 Create a version 2017.11.29 (Legacy) replica (建立版本 2017.11.29 (舊版) 複本)。
-
從 Available replication Regions (可用的複製區域) 下拉式清單,選擇 US West (Oregon) (美國西部 (奧勒岡))。
主控台會檢查,確認所選取的區域中沒有同名的資料表。若有同名的資料表,您必須先刪除現有的資料表,才可在該區域中建立新的複本資料表。
-
選擇 Create replica (建立複本)。這會啟動在美國西部 (奧勒岡) 建立資料表的程序。
所選資料表的 Global Table (全域資料表) 標籤 (及所有其他複本資料表),會顯示該資料表已複寫到多個區域。
-
您現在可以新增其他區域,複寫及同步美國與歐洲的全域資料表。若要執行此作業,請重複步驟 5,但這次請改為指定 Europe (Frankfurt) (歐洲 (法蘭克福)),而非 US West (Oregon) (美國西部 (奧勒岡))。
-
您應該仍會在美國東部 (俄亥俄) 區域使用 AWS Management Console。選取左側導覽功能表中的 Items (項目),選取 Music (音樂) 資料表,然後選擇 Create Item (建立項目)。
-
針對 Artist (藝人),輸入
item_1
。 -
針對 SongTitle,請輸入
Song Value 1
。 -
若要寫入該項目,請選擇 Create item (建立項目)。
-
-
稍待片刻之後,該項目將會複寫到您全域資料表中的所有三個區域。若要確認,請在主控台中移至右上角的區域選擇器,然後選擇 Europe (Frankfurt) (歐洲 (法蘭克福))。歐洲 (法蘭克福) 中的
Music
資料表此時應已包含新的項目。 -
重複步驟 9,然後選擇 US West (Oregon) (美國西部 (奧勒岡)) 以驗證該區域中的複寫。
建立全域資料表 (AWS CLI)
請遵循下列步驟,使用 AWS CLI 建立全域資料表 Music
。以下範例會建立全域資料表,並在美國及歐洲皆擁有複本資料表。
-
在美國東部 (俄亥俄) 建立新的資料表 (
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
-
在美國東部 (維吉尼亞北部) 建立相同的
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
-
建立全域資料表 (
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
) 的名稱相符。如需詳細資訊,請參閱 管理全域資料表的最佳實務和要求。 -
在歐洲 (愛爾蘭) 中建立另一個資料表,其設定與您在步驟 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
-
若要確認複寫正常運作,請將項目新增到美國東部 (俄亥俄) 中的
Music
資料表。aws dynamodb put-item \ --table-name Music \ --item '{"Artist": {"S":"item_1"},"SongTitle": {"S":"Song Value 1"}}' \ --region us-east-2
-
稍待幾秒鐘,然後檢查該項目是否已成功複寫到美國東部 (維吉尼亞北部) 與歐洲 (愛爾蘭)。
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