Amazon DynamoDB
开发人员指南 (API 版本 2012-08-10)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

创建全局表

本节介绍如何使用 DynamoDB 控制台、AWS Command Line Interface (CLI) 或 DynamoDB API 创建全局表。

创建全局表 (控制台)

按照以下步骤,使用控制台创建全局表。以下示例创建一个全局表,其副本表位于美国和欧洲。

  1. 通过以下网址打开 DynamoDB 控制台:https://console.amazonaws.cn/dynamodb/home。对于本示例,请 us-east-2 (美国东部俄亥俄州) 区域。

  2. 在控制台左侧的导航窗格中,选择 Tables (表)

  3. 选择 Create Table (创建表)

    对于表名称,键入 Music

    对于主键,键入 Artist。选择添加排序键,并键入 SongTitle。(ArtistSongTitle 都应为字符串。)

    要创建表,请选择创建。该表将作为新的全局表中的第一个副本表,并将成为以后添加的其他副本表的原型。

  4. 选择全局表选项卡,然后选择启用流。保留视图类型的默认值(新旧映像)。

  5. 选择添加区域,然后选择用来部署另一个副本表的另一个区域。在本例中,请选择美国西部(俄勒冈),然后选择继续。这将启动 美国西部(俄勒冈) 中的表创建过程。

    控制台将进行检查,以确保所选区域中没有同名的表。(如果有同名的表,则必须删除现有表,然后才能在该区域创建新的副本表)。

    选定表(以及任何其他副本表)的全局表选项卡将显示表在多个区域复制。

  6. 现在,您将添加另一个区域,以便跨美国和欧洲复制并同步您的全局表。为此,请重复步骤 5,不过这次指定欧洲(法兰克福)而非美国西部(俄勒冈)

  7. 在 us-east-2 (美国东部俄亥俄州) 区域,您应仍使用 AWS 管理控制台。对于 Music 表,选择项目选项卡,然后选择创建项目。对于 Artist,键入 item_1。对于 SongTitle,键入 Song Value 1。要写入该项目,请选择保存

    稍后,该项目将跨您的全局表的所有三个区域复制。要验证这一点,请在 AWS 管理控制台中,转到右上角的区域选择器,并选择欧洲(法兰克福)。欧洲(法兰克福)中的 Music 表应包含新的项目。

    对 美国西部(俄勒冈) 重复此步骤。

创建全局表 (AWS CLI)

按照以下步骤,使用 AWS CLI 创建全局表 Music。以下示例创建一个全局表,其副本表位于美国和欧洲。

  1. 在美国东部(俄亥俄州)中创建的新表(Music),同时启用 DynamoDB 流 (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
  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
  3. 创建全局表 (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) 匹配。有关更多信息,请参阅要求和最佳实践

  4. 在 欧洲(爱尔兰) 中创建另一个表,其设置和您在步骤 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
  5. 要验证复制是否在工作,请将一个新项添加到 美国东部(俄亥俄州) 的 Music 表中:

    aws dynamodb put-item \ --table-name Music \ --item '{"Artist": {"S":"item_1"},"SongTitle": {"S":"Song Value 1"}}' \ --region us-east-2
  6. 等待几秒钟,然后检查该项目是否已成功复制到美国东部(弗吉尼亚北部)和欧洲(爱尔兰):

    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