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

在 DynamoDB 为关系数据建模的初始步骤

重要

NoSQL 设计需要不同于 RDBMS 设计的思维模式。对于 RDBMS,您可创建规范化数据模型,而不用考虑访问模式。之后,在出现新问题和查询要求时,可以扩展它。相比之下,对于 DynamoDB,在了解需要解决的问题之前,您不应开始设计架构。预先了解业务问题和应用程序使用案例是至关重要的。

要开始设计将高效扩展的 DynamoDB 表,您必须首选执行几个步骤来确定其需要支持的运营和业务支持系统 (OSS/BSS) 所需的访问模式。

  • 对于新应用程序,查看有关活动和目标的用户案例。记录确定的各种使用案例,然后分析这些案例需要的访问模式。

  • 对于现有应用程序,分析查询日志以了解人们目前使用该系统的方式以及密钥访问模式有哪些。

在完成此过程后,您最后应获得一个可能如下所示的列表:


      密钥访问模式列表,包括一些项目,比如按 ID 查找员工详细信息、按员工姓名查询、查找客户电话号码等。

在实际应用程序中,您的列表可能更长。但是,此集合代表您可在生产环境中找到的查询模式复杂性的范围。

DynamoDB 架构设计的常见方法是确定应用程序层实体并使用反规范化和复合键聚合来降低查询复杂性。

在 DynamoDB 中,这表示使用复合排序键、重载全局二级索引、分区表/索引及其他设计模式。您可以使用这些元素来构造数据,以便应用程序可以在表或索引上使用单个查询来针对给定访问模式检索其所需的任何内容。可用于对关系建模中显示的规范化架构进行建模的主要模式是邻接列表模式。本设计中使用的其他模式可能包括全局二级索引写入分片、全局二级索引重载、复合键和具体化聚合。

重要

通常,您应在 DynamoDB 应用程序中保留尽可能少的表。大多数精心设计的应用程序只需要一个表。例外情况包括涉及大量时间序列数据或数据集具有明显不同的访问模式的情况。具有反向索引的单个表通常可启用简单查询来创建和检索应用程序所需的复杂层次数据结构。