Amazon DynamoDB
开发人员指南 (API Version 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。每个 DynamoDB 终端节点都是完全独立的。举例来说,如果您有两个名为“MyTable”的表,一个位于 dynamodb.us-west-2.amazonaws.com 中,另一个位于 dynamodb.us-west-1.amazonaws.com 中,则它们是完全独立的,并且不共享任何数据。

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

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

请求

语法

Copy
// 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 中的限制

类型:数组

ProvisionedThroughput: ReadCapacityUnits

在 DynamoDB 与其他操作均衡加载前,给指定的表设置每秒一致性使用的最小 ReadCapacityUnits 数值。

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

类型:数字

ProvisionedThroughput: WriteCapacityUnits 在 DynamoDB 与其他操作均衡加载前,给指定的表设置每秒使用的最小 WriteCapacityUnits 数值。

类型:数字

响应

语法

Copy
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

ReadCapacityUnits 与其他操作均衡加载前,给指定的表设置每秒使用的最小 WriteCapacityUnits 数值。将负载与其他操作进行平衡

类型:数字

TableName

创建的表的名称。

类型:字符串

TableStatus

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

使用 DescribeTables API 可查看表的状态。

类型:字符串

特殊错误

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

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

注意

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

示例

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

示例请求

Copy
// 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} }

示例响应

Copy
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" } }