模块 1:应用程序概览
了解应用程序的详细信息,以及学习如何为 DynamoDB 表建模以满足需求
简介
如本教程开头所述,您将构建一个在线书店应用程序,其中包含大型产品目录。当用户访问该应用程序时,它将显示库存图书以及这些图书的基本信息,例如作者、书名、类别等。
该应用程序应能通过书名和作者属性的组合检索特定书籍,以便用户获取有关书籍的更多信息。该应用程序还应允许用户查看某一类别(例如历史或传记)中的所有图书,以找到目录中的图书。这些书籍还可具有不同的格式,例如精装本、平装本和有声读物。这些书籍格式可随着时间的推移而更新。
在本模块中,您将了解该应用程序中的重要术语和概念,以及如何为 DynamoDB 表建模以满足应用程序的需求。
术语和概念
在本教程中,以下 DynamoDB 概念十分重要:
- 表:表就是数据的集合,供 DynamoDB 用于存储这些数据的具体结构。在本例中,我们将用一个书籍表来存储产品目录。
- 数据项:DynamoDB 表中的单个数据记录,其类似于关系数据库中的行。表中每个数据项都与产品目录中的一本书籍相对应。
- 属性:数据项的单个数据元素,类似于关系数据库中的列。然而,与关系数据库中的列不同,除主键外,创建表时无需指定属性。在本例中,属性将包括 Title(书名)、Author(作者)和 Category(类别)等元素。
- 主键:主键是 DynamoDB 表中单个数据项的唯一标识符。创建表时,必须指定主键的名称和类型。主键是写入表中的每个数据项的唯一标识。简单主键由单个属性组成,而复合主键由两个属性组成。例如,我们将使用 Title 和 Author 属性的组合作为每本书籍的唯一标识符。
PartiQL:这是一种与 SQL 兼容的查询语言,可以使用 SQL 语法对 DynamoDB 数据操作进行编码。
时长
15 分钟
前提条件
- 拥有 AWS 账户:如果您还没有 AWS 账户,请参阅设置环境入门指南,快速了解相关信息。
通过 pip install boto3 安装的 AWS SDK
数据模型
在构建应用程序时,您应始终花时间设计应用程序逻辑所需的数据模型。数据模型设计应考虑应用程序在读写数据方面的数据访问需求。
DynamoDB 是一种非关系数据库,这意味着您在创建表时无需预先指定完整的模式 (Schema)。您只需声明表的主键即可,主键是表中的每个数据项的唯一标识。这样可降低设计数据模型的前期成本,因为您可以根据应用程序需求的变化轻松修改模式。
如前所述,应用程序需要支持按 Title 和 Author 来检索单本书籍。由于 Title 和 Author 属性的组合是书籍的唯一标识符,因此可以将这些属性用作表的主键。应用程序还需要存储书籍的类别信息,例如历史或传记,以及与库存系统中数据项编号相对应的可用书籍格式(精装本、平装本或有声读物)。
考虑到这些需求,您可以使用以下表模式:
- Title(字符串):书名
- Author(字符串):作者
- Category(字符串):书籍的类别,例如历史、传记或科幻
- Formats(映射):您销售的不同书籍格式(如精装本、平装本和有声读物)及其在库存系统中的数据项编号
在接下来的步骤中,您将通过指定表的复合主键(Title 和 Author)来创建表。然后向表中导入一些数据项,并从表中读取单个数据项。