Amazon DynamoDB
开发人员指南 (API Version 2012-08-10)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

DynamoDB 文件历史记录

下表介绍了对文档的一些重要更改。

  • API 版本:2012-08-10

更改 描述 更改日期
推出 Amazon DynamoDB Accelerator (DAX),可提供最多 10 倍的查询性能提升 (预览版)

Amazon DynamoDB Accelerator (DAX) 是一个适用于 DynamoDB 的完全托管、高度可用的内存中的缓存,性能提高了多达 10 倍 (从毫秒缩短到了数微秒),甚至在每秒有数百万个请求时也是如此。有关更多信息,请参阅 利用 DAX 实现内存中加速

2017 年 4 月 19 日
DynamoDB 现在利用生存时间 (TTL) 支持自动项目过期

Amazon DynamoDB 生存时间 (TTL) 使您能够从表中自动删除过期的项目,无需额外付费。有关更多信息,请参阅 生存时间

2017 年 2 月 27 日
DynamoDB 现在支持成本分配标签

您现在可以将标签添加到 Amazon DynamoDB 表以改进使用分类和提高成本报告的精细度。有关更多信息,请参阅 DynamoDB 的标签

2017 年 1 月 19 日
新 DynamoDB DescribeLimits API

DescribeLimits API 将返回 AWS 账户在某个区域中的当前预置容量限制,既包括整个区域的容量限制,也包括您在其中创建的任何一个 DynamoDB 表的容量限制。它可以帮助您确定您当前的账户级容量限制,以便您将这些限制与您当前使用的预置容量进行对比,从而在达到限制之前有充分的时间提高容量。有关更多信息,请参阅 DynamoDB 中的限制 以及 Amazon DynamoDB API Reference 中的 DescribeLimits

2016 年 3 月 1 日
DynamoDB 控制台更新和主键属性的新术语

我们已对 DynamoDB 管理控制台进行了重新设计,使其更加直观且易于使用。在此次更新的过程中,我们针对主键属性引入了新术语:

  • 分区键 – 也称为散列属性

  • 排序键 – 也称为范围属性

仅更改了名称,其功能保持不变。

创建表或二级索引时,您可以选择简单主键 (仅具有分区键) 或复合主键 (同时具有分区键和排序键)。我们对 DynamoDB 文档进行了相应的更新,以反映这些更改。

2015 年 11 月 12 日
适用于 Titan 的 Amazon DynamoDB 存储后端

DynamoDB Storage Backend for Titan 是适用于基于 Amazon DynamoDB 实施的 Titan 图形数据库的存储后端。使用 DynamoDB Storage Backend for Titan 时,数据将受到 DynamoDB 的保护,这是因为该工具基于 Amazon 高度可用的数据中心运行。此插件适用于 Titan 版本 0.4.4 (主要为了实现与现有应用程序的兼容) 和 Titan 版本 0.5.4 (建议用于新应用程序)。与适用于 Titan 的其他存储后端类似,此插件支持 TinkerPop 堆栈 (版本 2.4 和 2.5),包括 Blueprints API 和 Gremlin shell。有关更多信息,请参阅 适用于 Titan 的 Amazon DynamoDB 存储后端

2015 年 8 月 20 日
DynamoDB 流、跨区域复制和具有强一致性读取的 Scan DynamoDB 流 在任何 DynamoDB 表中捕获按时间排序的项目级修改序列,并将这类信息存储在日志中长达 24 个小时。应用程序可访问此日志并在数据项目修改前后显示时实时查看数据项目。有关更多信息,请参阅使用 DynamoDB 流 捕获表活动DynamoDB 流 API 参考

DynamoDB 跨区域复制是一个客户端解决方案,用于跨不同的 AWS 区域实时维护 DynamoDB 表的相同副本。您可使用跨区域复制来备份 DynamoDB 表,或在用户在地理上分布的情况下提供对数据的低延迟访问。有关更多信息,请参阅 跨区域复制

默认情况下,DynamoDB Scan 操作使用最终一致性读取。您可通过将 ConsistentRead 参数设置为 true 来改用强一致性读取。有关更多信息,请参阅 Amazon DynamoDB API Reference中的Scan 的读取一致性Scan

2015 年 7 月 16 日
AWS CloudTrail 支持 Amazon DynamoDB DynamoDB 现已与 CloudTrail 集成。CloudTrail 捕获从 DynamoDB 控制台或 DynamoDB API 中进行的 API 调用,并在日志文件中跟踪这些调用。有关更多信息,请参阅使用 AWS CloudTrail 记录 DynamoDB 操作AWS CloudTrail User Guide 2015 年 5 月 28 日
Query 表达式的改进支持 此版本向 Query API 添加了新的 KeyConditionExpression 参数。Query 使用主键值读取表或索引中的项目。KeyConditionExpression 参数是一个字符串,可标识主键名称和要应用于键值的条件;Query 仅检索满足表达式条件的项目。KeyConditionExpression 的语法类似于 DynamoDB 中其他表达式参数的语法,并允许您定义表达式内的名称和值的替代变量。有关更多信息,请参阅 使用查询 2015 年 4 月 27 日
条件写入的新比较函数 在 DynamoDB 中,ConditionExpression 参数决定 PutItemUpdateItemDeleteItem 是否成功:仅在条件计算结果为 true 时写入项目。此版本添加了两个新函数 (attribute_typesize),二者可与 ConditionExpression 结合使用。利用这两个函数,您可以基于表中的数据类型或属性大小执行条件写入。有关更多信息,请参阅 条件表达式 2015 年 4 月 27 日
二级索引的 Scan API 在 DynamoDB 中,Scan 操作读取表中的所有项目,应用用户定义的筛选条件,并将所选数据项目返回到应用程序。此功能现在也可用于二级索引。要扫描本地二级索引或全局二级索引,您应指定索引名称以及索引父表的名称。默认情况下,索引 Scan 会返回索引中的全部数据;您可以使用筛选表达式缩小返回到应用程序的结果的范围。有关更多信息,请参阅 使用扫描 2015 年 2 月 10 日
全局二级索引的在线操作 通过在线索引编制,可以对现有表添加或删除全局二级索引。通过在线索引编制,您无需在创建表时定义表的全部索引,您可以随时添加新索引。同样,如果您决定不再需要某个索引,随时可以将其删除。在线索引编制操作是非阻塞的,这样在添加或删除索引时,表仍可用于读取和写入活动。有关更多信息,请参阅 管理全局二级索引 2015 年 1 月 27 日
JSON 的文档模型支持 DynamoDB 允许您存储和检索文档,为文档模型提供全面支持。新数据类型与 JSON 标准完全兼容,允许您将文档元素嵌套到另一个文档元素中。您可以使用文档路径解除引用运算符读取和写入单个元素,无需检索完整文档。此版本还引入了新的表达式参数,用于在读取或写入数据项目时指定投影、条件和更新操作。要了解有关 JSON 的文档模型支持的更多信息,请参阅数据类型在 DynamoDB 中使用表达式 2014 年 10 月 7 日
灵活扩展 对于表和全局二级索引,只要保持在每个表和每个账户的限制范围内,您就可以随意增加预置的读取和写入吞吐量容量。有关更多信息,请参阅DynamoDB 中的限制 2014 年 10 月 7 日
更大的项目大小 DynamoDB 中的最大项目大小已由 64 KB 增至 400 KB。有关更多信息,请参阅DynamoDB 中的限制 2014 年 10 月 7 日
改进了条件表达式 DynamoDB 扩展了可用于条件表达式的运算符,为条件放置、更新和删除提供了更好的灵活性。使用新提供的运算符,可以检查某个属性是否存在、大于还是小于特定值、是否位于两个值之间、是否以特定字符开头,等等。DynamoDB 还提供可选的 OR 运算符,用于计算多个条件。默认情况下,表达式中的多个条件用 AND 组合在一起,因此,只有所有条件都成立,表达式才成立。如果您改为指定 OR,则在一个或多个条件成立的情况下,表达式成立。有关更多信息,请参阅 在 DynamoDB 中处理项目 2014 年 4 月 24 日
查询筛选条件 DynamoDB Query API 支持新的 QueryFilter 选项。默认情况下,Query 查找与特定分区键值和可选排序键条件匹配的项目。Query 筛选条件将条件表达式应用于其他非键属性;如果存在 Query 筛选条件,则先丢弃不符合筛选条件的项目,再将 Query 结果返回至应用程序。有关更多信息,请参阅 使用查询 2014 年 4 月 24 日
使用 AWS 管理控制台进行数据导出和导入 DynamoDB 控制台经过增强,简化了 DynamoDB 表中数据的导出和导入。只需几次单击,即可设置 AWS Data Pipeline 以协调工作流程,并可设置 Amazon Elastic MapReduce 集群以将 DynamoDB 表中的数据复制到 Amazon S3 存储桶 (反之亦然)。您可以仅执行一次导出或导入,也可以设置每日导出任务。您甚至可以执行跨区域导出和导入,将一个 AWS 区域中某个表的 DynamoDB 数据复制到另一个 AWS 区域中的表中。有关更多信息,请参阅 使用 AWS Data Pipeline 导入和导出 DynamoDB 数据 2014 年 3 月 6 日
重新组织了较高级别 API 文档 现在更易于查找有关以下 API 的信息:
  • Java:DynamoDBMappper

  • .NET:文档模型和对象持久化模型

这些较高级别 API 现在记录在此处:DynamoDB 的高级编程接口
2014 年 1 月 20 日
全局二级索引 DynamoDB 添加了对全局二级索引的支持。与本地二级索引一样,您可通过使用表中的替代键来定义全局二级索引、然后对该索引发出查询请求。与本地二级索引不同,全局二级索引的分区键不必与表的分区键相同;它可以是表中的任何标量属性。排序键是可选的,也可以是任何标量表属性。全局二级索引还有自己的预置吞吐量设置,这些设置独立于父表的相关设置。有关更多信息,请参阅 使用二级索引改进数据访问全局二级索引 2013 年 12 月 12 日
访问权限的精细控制 DynamoDB 添加了对精细访问控制的支持。通过此功能,客户可以指定有权访问 DynamoDB 表或二级索引中各个项目和属性的委托人 (用户、组或角色)。应用程序还可以使用 Web 联合身份验证将用户身份验证任务转移到第三方身份提供商,如 Facebook、Google 或 Login with Amazon。这样,应用程序 (包括移动应用程序) 可以处理大量用户,同时确保只有获得授权的人才能访问 DynamoDB 数据项目。有关更多信息,请参阅 使用 IAM 策略条件实现精细访问控制 2013 年 10 月 29 日
读取容量单位增加至 4 KB 读取容量单位的大小由 1 KB 增加为 4 KB。这一提升让很多应用程序需求预置的读取容量单位数量得以减少。例如,在此版本之前,读取一个 10 KB 的项目需要占用 10 个读取容量单位;现在,读取这个 10 KB 的项目只需占用 3 个单位 (10 KB / 4 KB,向上取整到 4 KB 的 3 倍)。有关更多信息,请参阅 读取和写入吞吐容量 2013 年 5 月 14 日
并行扫描 DynamoDB 添加了对并行扫描操作的支持。现在,应用程序可以将表划分成逻辑分段,并同时扫描所有分段。此功能可以缩短完成扫描所需的时间,而且能够完全利用为表预置的读取容量。有关更多信息,请参阅 使用扫描 2013 年 5 月 14 日
本地二级索引 DynamoDB 添加了对local secondary index的支持。您可以就非键属性定义排序键索引,并在查询请求中使用这些索引。通过local secondary index,应用程序可以高效检索多个维度的数据项目。有关更多信息,请参阅 本地二级索引 2013 年 4 月 18 日
新 API 版本 DynamoDB 在此版本中推出了新的 API 版本 (2012-08-10)。之前的 API 版本 (2011-12-05) 仍然受支持,以实现与现有应用程序的后向兼容。新应用程序应使用新的 2012-08-10 版本 API。建议您将现有应用程序迁移至 API 版本 2012-08-10,因为新的 DynamoDB 功能 (如本地二级索引) 不会向后移植到旧版 API。有关 2012-08-10 版本 API 的更多信息,请参阅 Amazon DynamoDB API Reference 2013 年 4 月 18 日
IAM 策略变量支持

IAM 访问策略语言现在支持变量。评估策略时,所有策略变量都会被替换为由基于上下文的信息 (来自经过身份验证的用户的会话) 提供的值。您可以使用策略变量来定义通用策略,无需显式列出策略的所有部分。有关策略变量的更多信息,请参阅使用 IAM 进行的 AWS Identity and Access Management 指南中的策略变量

有关 DynamoDB 中的策略变量的示例,请参阅Amazon DynamoDB 的身份验证和访问控制

2013 年 4 月 4 日
PHP 代码示例针对适用于 PHP 的 AWS 开发工具包第 2 版进行了更新 适用于 PHP 的 AWS 开发工具包第 2 版现已推出。Amazon DynamoDB 开发人员指南 中的 PHP 代码示例已更新为使用这一新开发工具包。有关此第 2 版开发工具包的更多信息,请参阅适用于 PHP 的 AWS 开发工具包 2013 年 1 月 23 日
新终端节点 DynamoDB 扩展到 AWS GovCloud(美国) 区域。有关最新服务终端节点和协议的列表,请参阅区域和终端节点 2012 年 12 月 3 日
新终端节点 DynamoDB 扩展到 南美洲(圣保罗) 区域。有关支持的终端节点的最新列表,请参阅区域和终端节点 2012 年 12 月 3 日
新终端节点 DynamoDB 扩展到 亚太区域(悉尼) 区域。有关支持的终端节点的最新列表,请参阅区域和终端节点 2012 年 11 月 13 日

DynamoDB 实施了对 CRC32 校验和的支持、对强一致性批量获取的支持,取消了对表并行更新的限制。

  • DynamoDB 计算 HTTP 负载的 CRC32 校验和并使用新标头 (x-amz-crc32) 返回此校验和。有关更多信息,请参阅 DynamoDB 低级 API

  • 默认情况下,BatchGetItem API 执行的读取操作都采用最终一致性。通过 BatchGetItem 中的新 ConsistentRead 参数,您可以针对请求中的任意表选择强读取一致性。有关更多信息,请参阅 说明

  • 本版本取消了针对同时更新多个表的一些限制。您可以同时更新的表总数还是 10 个;但是,现在对这 10 个表中具体包含多少个 CREATINGUPDATINGDELETING 状态表不做限制。另外,增加或减少表的 ReadCapacityUnitsWriteCapacityUnits 不再有最低调整幅度限制。有关更多信息,请参阅 DynamoDB 中的限制

2012 年 11 月 2 日

最佳实践文档

Amazon DynamoDB 开发人员指南 中介绍了有关处理表和项目的最佳实践,并就查询和扫描操作给出建议。

2012 年 9 月 28 日

对二进制数据类型的支持

除了数字和字符串类型之外,DynamoDB 现在还支持二进制数据类型。

在此版本之前,要存储二进制数据,您必须先将二进制数据转换成字符串格式,然后才能在 DynamoDB 中存储。除了在客户端执行必需的转换工作之外,执行这种转换通常还会增加数据项目的大小,从而需要占用更多存储空间,还可能会需要额外为其增加预置吞吐量。

有了二进制类型属性,您现在可以存储任意二进制数据 (例如压缩数据、加密数据和图像)。有关更多信息,请参阅数据类型。有关使用 AWS 开发工具包处理二进制类型数据的使用实例,请参阅以下章节:

要获取 AWS 开发工具包中新增的二进制数据类型支持,您需要下载最新的开发工具包,还可能需要更新任何现有的应用程序。有关下载 AWS 开发工具包的信息,请参阅 .NET 代码示例

2012 年 8 月 21 日

DynamoDB 表项目可以使用 DynamoDB 控制台更新和复制

现在,DynamoDB 用户除了添加和删除项目之外,还能使用 DynamoDB 控制台更新和复制表项目。这一新功能让通过控制台更改各个项目的操作得以简化。

2012 年 8 月 14 日

DynamoDB 降低了表最低吞吐量要求

DynamoDB 现在支持更低的最小表吞吐量要求,也就是 1 个写入容量单位和 1 个读取容量单位。有关更多信息,请参阅 Amazon DynamoDB 开发人员指南 中的 DynamoDB 中的限制 主题。

2012 年 8 月 9 日

签名版本 4 支持

DynamoDB 现在支持用于对请求进行身份验证的签名版本 4。

2012 年 7 月 5 日

DynamoDB 控制台中的表资源管理器支持

DynamoDB 控制台现在支持表资源管理器,您可以用它来浏览和查询表中的数据。您还可以插入新项目或删除现有项目。创建表并加载示例数据使用控制台 这两节已就这些功能进行更新。

2012 年 5 月 22 日

新终端节点

DynamoDB 可用性利用新终端节点扩展到 美国西部(加利福尼亚北部) 区域、美国西部(俄勒冈) 区域和 亚太区域(新加坡) 区域。

有关受支持终端节点的最新列表,请转至区域和终端节点

2012 年 4 月 24 日

BatchWriteItem API 支持

DynamoDB 现在支持一个批量写入 API,让您能够只需调用一个 API,即可写入和删除一个或多个表中的多个项目。有关 DynamoDB 批量写入 API 的更多信息,请参阅 BatchWriteItem

有关处理项目和使用 AWS 开发工具包批量写入功能的更多信息,请参阅 在 DynamoDB 中处理项目.NET 代码示例

2012 年 4 月 19 日

记录更多错误代码

有关更多信息,请参阅 错误处理

2012 年 4 月 5 日

新终端节点

DynamoDB 扩展到 亚太区域(东京) 区域。有关支持的终端节点的最新列表,请参阅区域和终端节点

2012 年 29 月 2 日

添加了 ReturnedItemCount 指标

新指标 ReturnedItemCount 在 DynamoDB 的查询或扫描操作的响应中提供返回的项目数,可通过 CloudWatch 进行监控。有关更多信息,请参阅 监控 DynamoDB

2012 年 24 月 2 日

添加了值递增示例

DynamoDB 支持现有数字递增或递减。有关更新现有值的示例,请参阅以下章节中的“更新项目”小节:

处理项目:Java

处理项目:.NET

2012 年 1 月 25 日

产品最初版本

DynamoDB 作为新服务推出,此时提供的是测试版。

2012 年 1 月 18 日