CreateTable - Amazon DynamoDB

CreateTable

重要

本节介绍已经弃用的 API 版本 2011-12-05,不应用于新应用程序。

有关当前低级别 API 的文档,请参阅 Amazon DynamoDB API 参考

描述

CreateTable 操作将一个新表添加到您的账户。

表名称在发出请求的 AWS 账户的关联区域,以及接收请求的 AWS 区域(例如 dynamodb.us-west-2.amazonaws.com)中必须唯一。每个 DynamoDB 端点完全独立。例如,如果您有两个名为“MyTable”的表,一个位于 dynamodb.us-west-2.amazonaws.com,另一个位于 dynamodb.us-west-1.amazonaws.com,则这两个表完全独立,不共享任何数据。

CreateTable 操作触发异步工作流,开始创建表。DynamoDB 立即返回表的状态 (CREATING),直到表处于 ACTIVE 状态。表处于 ACTIVE 状态后,可以执行数据层面操作。

使用 DescribeTables 操作检查表的状态。

请求

语法

// This header is abbreviated. // For a sample of a complete header, see DynamoDB 低级 API. POST / HTTP/1.1 x-amz-target: DynamoDB_20111205.CreateTable content-type: application/x-amz-json-1.0 {"TableName":"Table1", "KeySchema": {"HashKeyElement":{"AttributeName":"AttributeName1","AttributeType":"S"}, "RangeKeyElement":{"AttributeName":"AttributeName2","AttributeType":"N"}}, "ProvisionedThroughput":{"ReadCapacityUnits":5,"WriteCapacityUnits":10} }
名称 描述 必填
TableName

要创建的表的名称。

允许的字符包括 a-z、A-Z、0-9、“_”(下划线)、“-”(短划线)和“.”(点号)。名称长度在 3 和 255 个字符之间。

类型:字符串

KeySchema

表的主键(简单或复合)结构。HashKeyElement 的名称-值对是必填的,RangeKeyElement 的名称-值对是可选的(只有复合主键需要)。有关主键的更多信息,请参阅 主键

主键元素名称长度可以在 1 到 255 个字符之间,没有字符限制。

AttributeType 的可能值包括“S”(字符串)、“N”(数字)或“B”(二进制)。

类型:HashKeyElement 的映射,或者复合主键的 HashKeyElementRangeKeyElement

ProvisionedThroughput 指定表的新吞吐量,由 ReadCapacityUnitsWriteCapacityUnits 的值组成。有关详细信息,请参阅 DynamoDB 预置容量模式
注意

有关当前最大值/最小值,请参阅 Amazon DynamoDB 中的服务、账户和表限额

类型:数组

ProvisionedThroughput: ReadCapacityUnits

设置 DynamoDB 平衡负载和其他操作前,指定表每秒消耗的一致 ReadCapacityUnits 的最小数量。

最终一致读取操作需要的资源少于一致读取操作,因此,设置每秒 50 个一致的 ReadCapacityUnits 可提供每秒 100 个最终一致的 ReadCapacityUnits

类型:数字

ProvisionedThroughput: WriteCapacityUnits 设置 DynamoDB 平衡负载和其他操作前,指定表每秒消耗的 WriteCapacityUnits 的最小数量。

类型:数字

响应

语法

HTTP/1.1 200 OK x-amzn-RequestId: CSOC7TJPLR0OOKIRLGOHVAICUFVV4KQNSO5AEMVJF66Q9ASUAAJG content-type: application/x-amz-json-1.0 content-length: 311 Date: Tue, 12 Jul 2011 21:31:03 GMT {"TableDescription": {"CreationDateTime":1.310506263362E9, "KeySchema": {"HashKeyElement":{"AttributeName":"AttributeName1","AttributeType":"S"}, "RangeKeyElement":{"AttributeName":"AttributeName2","AttributeType":"N"}}, "ProvisionedThroughput":{"ReadCapacityUnits":5,"WriteCapacityUnits":10}, "TableName":"Table1", "TableStatus":"CREATING" } }
名称 描述
TableDescription 表属性的容器。
CreationDateTime

UNIX 纪元时间 表示的表创建日期。

类型:数字

KeySchema

表的主键(简单或复合)结构。HashKeyElement 的名称-值对是必填的,RangeKeyElement 的名称-值对是可选的(只有复合主键需要)。有关主键的更多信息,请参阅 主键

类型:HashKeyElement 的映射,或者复合主键的 HashKeyElementRangeKeyElement

ProvisionedThroughput

指定的表的吞吐量,由 ReadCapacityUnitsWriteCapacityUnits 的值组成。请参阅 DynamoDB 预置容量模式

类型:数组

ProvisionedThroughput :ReadCapacityUnits

DynamoDB 平衡负载和其他操作前,每秒消耗的 ReadCapacityUnits 的最小数量。

类型:数字

ProvisionedThroughput :WriteCapacityUnits

WriteCapacityUnits 平衡负载和其他操作前,每秒消耗的 ReadCapacityUnits 的最小数量。

类型:数字

TableName

创建的表的名称。

类型:字符串

TableStatus

表的当前状态 (CREATING)。表处于 ACTIVE 状态后,可以将数据放入其中。

使用 DescribeTables API 检查表的状态。

类型:字符串

特殊错误

错误 描述
ResourceInUseException 尝试重新创建已存在的表。
LimitExceededException

同时表请求的数量(CREATINGDELETINGUPDATING 状态的表数量总和)超过允许的最大值。

注意

有关当前最大值/最小值,请参阅 Amazon DynamoDB 中的服务、账户和表限额

.

示例

下面的示例创建具有复合主键的表,其中包含字符串和数字。有关使用 AWS SDK 的示例,请参阅 使用 DynamoDB 中的表和数据

示例请求

// This header is abbreviated. // For a sample of a complete header, see DynamoDB 低级 API. POST / HTTP/1.1 x-amz-target: DynamoDB_20111205.CreateTable content-type: application/x-amz-json-1.0 {"TableName":"comp-table", "KeySchema": {"HashKeyElement":{"AttributeName":"user","AttributeType":"S"}, "RangeKeyElement":{"AttributeName":"time","AttributeType":"N"}}, "ProvisionedThroughput":{"ReadCapacityUnits":5,"WriteCapacityUnits":10} }

示例响应

HTTP/1.1 200 OK x-amzn-RequestId: CSOC7TJPLR0OOKIRLGOHVAICUFVV4KQNSO5AEMVJF66Q9ASUAAJG content-type: application/x-amz-json-1.0 content-length: 311 Date: Tue, 12 Jul 2011 21:31:03 GMT {"TableDescription": {"CreationDateTime":1.310506263362E9, "KeySchema": {"HashKeyElement":{"AttributeName":"user","AttributeType":"S"}, "RangeKeyElement":{"AttributeName":"time","AttributeType":"N"}}, "ProvisionedThroughput":{"ReadCapacityUnits":5,"WriteCapacityUnits":10}, "TableName":"comp-table", "TableStatus":"CREATING" } }