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

CreateTable

重要

本节引用 API 版本 2011-12-05,此版本已被弃用且不应用于新应用程序。

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

说明

CreateTable 操作给您的账户添加新的表。

在与发出请求的 AWS 账户和接收请求的 AWS 区域(如 dynamodb.us-west-2.amazonaws.com.cn)关联的这些表中,表名必须是唯一的。每个 DynamoDB 终端节点都是完全独立的。例如,如果您有两个名为“MyTable”的表,一个在 dynamodb.us-west-2.amazonaws.com.cn 中,一个在 dynamodb.us-west-1.amazonaws.com.cn 中,则它们是完全独立的,不共享任何数据。

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”(二进制)。

类型:复合主键的 HashKeyElementHashKeyElementRangeKeyElement 的映射。

ProvisionedThroughput 指定的表的新吞吐量,由 ReadCapacityUnitsWriteCapacityUnits 的值组成。有关详细信息,请参阅 读取和写入的吞吐量设置

注意

有关当前最大值/最小值的信息,请参阅 DynamoDB 中的限制

类型:数组

ProvisionedThroughputReadCapacityUnits

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

最终一致性读取操作所需的工作量要少于常规一致性读取操作,所以,一组每秒 50 次的一致性 ReadCapacityUnits 操作会实现最终每秒 100 次一致性 ReadCapacityUnits 操作。

类型:数字

ProvisionedThroughputWriteCapacityUnits 设置在 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 的名称-值对为可选内容(只有复合主键才需要该内容)。有关主键的更多信息,请参阅 主键

类型:复合主键的 HashKeyElementHashKeyElementRangeKeyElement 的映射。

ProvisionedThroughput

指定的表的吞吐量,由 ReadCapacityUnitsWriteCapacityUnits 的值组成。请参阅 读取和写入的吞吐量设置

类型:数组

ProvisionedThroughput :ReadCapacityUnits

设置在 DynamoDB 与其他操作平衡负载前,每秒占用的 ReadCapacityUnits 的最小数目。

类型:数字

ProvisionedThroughput :WriteCapacityUnits

设置在 WriteCapacityUnits 与其他操作平衡负载前,每秒占用的 ReadCapacityUnits 的最小数目。

类型:数字

TableName

创建的表的名称。

类型:字符串

TableStatus

该表的当前状态 (CREATING)。一旦表处于 ACTIVE 状态,您就可以将数据放入其中。

使用 DescribeTables API 查看表的状态。

类型:字符串

特殊错误

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

并行表请求的数量(状态为 CREATINGDELETINGUPDATING 的表的累计数量)超出最大容许值。

注意

有关当前最大值/最小值的信息,请参阅 DynamoDB 中的限制

.

示例

下例创建带有复合主键的表,其中包含字符串和数字。有关使用 AWS 开发工具包的示例,请参阅 在 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" } }