使用 NoSQL 键值数据存储构建应用程序

入门指南

模块 1:应用程序概览

了解应用程序的详细信息,以及学习如何为 DynamoDB 表建模以满足需求

简介

如本教程开头所述,您将构建一个在线书店应用程序,其中包含大型产品目录。当用户访问该应用程序时,它将显示库存图书以及这些图书的基本信息,例如作者、书名、类别等。

该应用程序应能通过书名和作者属性的组合检索特定书籍,以便用户获取有关书籍的更多信息。该应用程序还应允许用户查看某一类别(例如历史或传记)中的所有图书,以找到目录中的图书。这些书籍还可具有不同的格式,例如精装本、平装本和有声读物。这些书籍格式可随着时间的推移而更新。

在本模块中,您将了解该应用程序中的重要术语和概念,以及如何为 DynamoDB 表建模以满足应用程序的需求。

术语和概念

在本教程中,以下 DynamoDB 概念十分重要:

  • :表就是数据的集合,供 DynamoDB 用于存储这些数据的具体结构。在本例中,我们将用一个书籍表来存储产品目录。
  • 数据项:DynamoDB 表中的单个数据记录,其类似于关系数据库中的行。表中每个数据项都与产品目录中的一本书籍相对应。
  • 属性:数据项的单个数据元素,类似于关系数据库中的列。然而,与关系数据库中的列不同,除主键外,创建表时无需指定属性。在本例中,属性将包括 Title(书名)、Author(作者)和 Category(类别)等元素。
  • 主键:主键是 DynamoDB 表中单个数据项的唯一标识符。创建表时,必须指定主键的名称和类型。主键是写入表中的每个数据项的唯一标识。简单主键由单个属性组成,而复合主键由两个属性组成。例如,我们将使用 TitleAuthor 属性的组合作为每本书籍的唯一标识符。

PartiQL:这是一种与 SQL 兼容的查询语言,可以使用 SQL 语法对 DynamoDB 数据操作进行编码。

 时长

15 分钟

 前提条件

  • 拥有 AWS 账户:如果您还没有 AWS 账户,请参阅设置环境入门指南,快速了解相关信息。

  • 通过 pip install boto3 安装的 AWS SDK

数据模型

在构建应用程序时,您应始终花时间设计应用程序逻辑所需的数据模型。数据模型设计应考虑应用程序在读写数据方面的数据访问需求。

DynamoDB 是一种非关系数据库,这意味着您在创建表时无需预先指定完整的模式 (Schema)。您只需声明表的主键即可,主键是表中的每个数据项的唯一标识。这样可降低设计数据模型的前期成本,因为您可以根据应用程序需求的变化轻松修改模式。

如前所述,应用程序需要支持按 TitleAuthor 来检索单本书籍。由于 TitleAuthor 属性的组合是书籍的唯一标识符,因此可以将这些属性用作表的主键。应用程序还需要存储书籍的类别信息,例如历史或传记,以及与库存系统中数据项编号相对应的可用书籍格式(精装本、平装本或有声读物)。

Visualization breaking down

考虑到这些需求,您可以使用以下表模式:

  • Title(字符串):书名
  • Author(字符串):作者
  • Category(字符串):书籍的类别,例如历史、传记或科幻
  • Formats(映射):您销售的不同书籍格式(如精装本、平装本和有声读物)及其在库存系统中的数据项编号

在接下来的步骤中,您将通过指定表的复合主键(TitleAuthor)来创建表。然后向表中导入一些数据项,并从表中读取单个数据项。

总结

在本模块中,我们介绍了重要的术语和概念,以及如何为 DynamoDB 表建模以满足应用程序的需求。

下一项:插入和检索数据