在本课中,您将练习几个将数据插入 DynamoDB 并进行数据检索的简单示例。您将使用 CreateTable API 创建 DynamoDB 表,然后使用 BatchWriteItem API 调用插入一些项目。最后,您将使用 GetItem API 调用检索个别项目。在练习这些示例前,我们将介绍示例网上书店应用程序将使用的数据模型。
在后面的模块中,您将学习如何使用 Query API 调用来一次检索多个项目,以及如何使用二级索引启用额外的查询模式。您还将学习如何更新表中现有的项目。
完成模块所需时间:15 分钟
本模块中将使用下列重要的 DynamoDB 概念:
- 表:DynamoDB 数据记录的集合。
- 项目:DynamoDB 表中的单条数据记录,相当于关系数据库中的行。
- 属性:项目的单个数据元素,相当于关系数据库中的列。但与关系数据库中的列不同,除本模块稍后将介绍的主键外,您无需在创建表时指定属性。属性可以是字符串、整数或布尔值等简单的类型,也可以是列表或映射等复杂的类型。
- 主键:主键是 DynamoDB 表中单个项目的唯一标识符。主键名称和类型必须在创建表时指定,并且写入表的每个项目都必须包含指定类型的主键。简单主键由一个简单属性组成;复合主键由两个属性组成:分区键和排序键。例如,您可以使用“UserID”创建一个简单主键以作为标识符,或者使用“UserID”和“Creation_Date”的组合创建一个复合主键以作为项目标识符。
在构建应用程序时,您应始终注意设计符合应用程序逻辑需要的数据模型。此数据模型的设计应考虑您的应用程序在读取和写入数据时的数据访问需要。
DynamoDB 是一种非关系数据库。使用非关系数据库时,您无需在创建表时事先指定完整的架构。您只需声明表的主键,这是表中每条记录的唯一标识符。这将减少设计数据模型的前期费用,因为您可以随着应用程序需求的变化轻松修改架构。
如本教程“简介”中的“应用程序背景”部分所提到,您的应用程序需要能够按书名和作者检索图书。由于书名和作者的组合是图书的唯一标识符,您可以将这些属性作为表的主键。您的应用程序还需要存储有关图书类别的信息(例如历史类或传记类)以及有关图书装订样式的信息(即精装版、平装版或有声版),并与您库存系统中的货号对应。
鉴于这些需求,您可以将以下架构用于您的表:
- Title(字符串):图书名称
- Author(字符串):图书作者
- Category(字符串):图书类别,例如历史类、传记类、科幻类等
- Formats(映射):可供销售的图书装订样式(例如精装版、平装版和有声版)以及在库存系统中的货号
在下面的步骤中,您将指定表的复合主键(Author 和 Title),从而创建表。然后,您将一些项目加载到表中,并从表中读取个别项目。