DynamoDB 表的数据建模 - Amazon DynamoDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

DynamoDB 表的数据建模

在我们深入研究数据建模之前,了解一些 DynamoDB 基础知识很重要。DynamoDB 是一个键/值 NoSQL 数据库,允许灵活的架构。除了每个项目的关键属性外,数据属性集可以是统一的,也可以是离散的。DynamoDB 键架构要么采用简单主键的形式(其中分区键可以唯一地标识项目),要么是采用复合主键的形式(其中分区键和排序键的组合可以唯一地定义项目)。对分区键进行哈希处理,以确定数据的物理位置并检索数据。因此,务必选择高基数和水平可扩展的属性作为分区键,以确保数据的均匀分布。排序键属性在键架构中是可选的,使用排序键可以针对一对多关系建模并在 DynamoDB 中创建项目集合。排序键也称为范围键,用于对项目集合中的项目进行排序,还允许灵活的基于范围的操作。

有关 DynamoDB 键架构的更多详细信息和最佳实践,您可以参考以下内容:

在 DynamoDB 中,通常需要二级索引来支持其他查询模式。二级索引是影子表,与基表相比,相同的数据通过不同的键架构进行组织。本地二级索引(LSI)与基表共享相同的分区键,并允许使用备用排序键以允许它共享基表的容量。全局二级索引(GSI)可以具有与基表不同的分区键以及不同的排序键属性,这意味着 GSI 的吞吐量管理独立于基表。

有关二级索引和最佳实践的更多详细信息,可以参考以下内容:

现在让我们更深入地了解数据建模。在 DynamoDB 或任何相关的 NoSQL 数据库上,设计灵活且高度优化的架构,这个过程所需的技能学习起来并不简单。本模块的目标是协助您开发用于设计架构的思维流程图,让您从使用场景转入生产。首先,我们将介绍在进行所有设计(即单表设计与多表设计)时的基础选择。接下来,我们将查看多种设计模式(构建基块),您可以利用这些模式来为应用程序实现不同的组织或性能结果。最后,我们还为不同的使用场景和行业提供了各种完整的架构设计包。


      图中显示了数据、位于数据下方的数据块以及位于数据块下方的基础之间的概念关系。