第 5 步。创建 DynamoDB 数据模型 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

第 5 步。创建 DynamoDB 数据模型

目标

  • 创建 DynamoDB 数据模型。

流程

  • 数据库工程师确定每个用例需要多少张表。我们建议在 DynamoDB 应用程序中保留尽可能少的表。

  • 根据最常见的访问模式,确定可以是两种类型之一的主键:带有标识数据的分区键的主键,或带有分区键和排序键的主键。排序键是用于分组和组织数据的辅助索引,因此可以在分区内高效地对其进行查询。您可以利用排序键,在数据中定义层级关系,在任何层级查询(请参阅博客帖子)。

    • 分区键设计

      • 定义分区键并评估其分布。

      • 确定是否需要进行写入分片均匀分配工作负载。

    • 排序键设计

      • 确定排序键。

      • 确定是否需要复合排序键。

      • 确定版本控制的需求。

  • 根据访问模式,确定二级索引以满足查询要求。

    • 确定是否需要本地二级索引 (LSIs)。存在分区键与基表相同、但排序键不同的索引。

      • 对于带的表 LSIs,每个分区键值的大小限制为 10 GB。只要任何一个分区键值的总大小不超过 10 GB,则具有的表 LSIs 可以存储任意数量的项目。

    • 确定是否需要全局二级索引 (GSIs)。存在分区键和排序键可以与基表上的分区键和排序键不同的索引(请参阅博客帖子)。

    • 定义索引投影。考虑减少投影属性的数量,尽可能减少写入索引的项目大小。在此步骤中,应确定是否要使用以下内容:

  • 数据库工程师决定数据是否包含大型项目。如果是,他们通过使用压缩方法或在 Amazon Simple Storage Service (Amazon S3) 存储数据,设计解决方案。

  • 数据库工程师决定是否需要时间序列数据。如果是,他们将使用时间序列设计模式对数据进行建模。

  • 数据库工程师确定 ER 模型是否包含 many-to-many关系。如果是,他们将使用相邻列表设计模式对数据进行建模。

工具和资源

RACI

业务用户 业务分析师 解决方案架构师 数据库工程师 应用程序开发者 DevOps 工程师

R/A

输出

  • 满足您的访问模式和要求的 DynamoDB 表架构

示例

以下屏幕截图显示了 NoSQL 工作台。

DynamoDB table schema