

# NoSQL Workbench for DynamoDB
<a name="workbench"></a>

 NoSQL Workbench for Amazon DynamoDB 是一个跨平台的客户端 GUI 应用程序，可用于现代数据库开发和运营。它适用于 Windows、macOS 和 Linux 系统。利用 NoSQL Workbench，您可以设计 DynamoDB 数据模型，将访问模式定义为真实的 DynamoDB 操作，并使用示例数据对其进行验证。此外，您还可以将数据模型组织成项目。NoSQL Workbench 包含 DynamoDB local，这样您就可以在将数据模型提交到云端之前，测试表和索引。要了解 DynamoDB local 及其要求的更多信息，请参阅[设置 DynamoDB local（可下载版本）](DynamoDBLocal.md)。

**数据建模器**  
 借助 NoSQL Workbench for DynamoDB，您可以从头开始创建新项目，也可以使用与您的使用案例相符的示例项目。然后，您需要设计表和全局二级索引、定义属性和配置示例数据。您还可以将访问模式可视化为真实的 DynamoDB 操作（PutItem、UpdateItem、Query 等），然后对配置的示例数据运行这些操作来验证访问模式是否按预期工作，并根据验证结果调整数据模型。最后，在完成验证后，您可以将模型提交到 DynamoDB local 或您的 AWS 账户，以供进一步测试和生产使用。为了开展协作，您可以导入和导出设计的数据模型。有关更多信息，请参阅 [使用 NoSQL Workbench 构建数据模型](workbench.Modeler.md)。

**操作生成器**  
NoSQL Workbench 为开发和测试查询提供了一个丰富的图形用户界面。您可以使用*操作生成器*来查看、浏览和查询实时数据集。结构化操作生成器支持投影表达式、条件表达式，并生成多种语言的示例代码。您可以直接将表从一个 Amazon DynamoDB 账户克隆到不同区域的另一个账户。您还可以直接在 DynamoDB local 账户和 Amazon DynamoDB 账户之间克隆表，以便在开发环境之间更快地复制表的键架构（以及可选的 GSI 架构和项目）。有关更多信息，请参阅 [使用 NoSQL Workbench 浏览数据集和生成操作](workbench.querybuilder.md)。

以下视频详细介绍了使用 NoSQL Workbench 进行数据建模的概念。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/p5va6ZX9_o0?si=vqQuf6FjoBuK1phR/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/p5va6ZX9_o0?si=vqQuf6FjoBuK1phR)


**Topics**
+ [下载 NoSQL Workbench for DynamoDB](workbench.settingup.md)
+ [使用 NoSQL Workbench 构建数据模型](workbench.Modeler.md)
+ [使用 NoSQL Workbench 浏览数据集和生成操作](workbench.querybuilder.md)
+ [NoSQL Workbench 的示例数据模型](workbench.SampleModels.md)
+ [NoSQL Workbench 的发布历史记录](WorkbenchDocumentHistory.md)

# 下载 NoSQL Workbench for DynamoDB
<a name="workbench.settingup"></a>

请按照这些说明下载 NoSQL Workbench 和 DynamoDB local for Amazon DynamoDB。

**下载 NoSQL Workbench 和 DynamoDB local**
+ 下载适用于您的操作系统的 NoSQL Workbench 版本。  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/amazondynamodb/latest/developerguide/workbench.settingup.html)

**注意**  
NoSQL Workbench 的安装过程中包括了 DynamoDB local。  
运行 DynamoDB local 需要 Java 运行时环境（JRE）版本 17.x 或更高版本。

**注意**  
NoSQL Workbench 支持 Ubuntu 12.04、Fedora 21 和 Debian 8 或这些 Linux 发行版的任何较新版本。  
安装 Ubuntu 需要两个必备软件：`libfuse2` 和 `curl`。  
默认情况下，从 Ubuntu 22.04 开始，不再安装 libfuse2。要解决这个问题，请运行 `sudo add-apt-repository universe && sudo apt install libfuse2`，安装最新的 Ubuntu 版本。  
对于 cURL，请运行 `sudo apt update && sudo apt upgrade && sudo apt install curl`。

# 使用 NoSQL Workbench 构建数据模型
<a name="workbench.Modeler"></a>

您可以在 NoSQL Workbench for Amazon DynamoDB 中使用数据建模器工具构建新的数据模型，或根据现有数据模型设计符合应用程序数据访问模式的模型。数据建模器包含一些示例数据模型，可帮助您快速入门。

**Topics**
+ [创建新数据模型](workbench.Modeler.CreateNew.md)
+ [导入现有数据模型](workbench.Modeler.ImportExisting.md)
+ [编辑现有数据模型](workbench.Modeler.Edit.md)
+ [将示例数据添加到数据模型](workbench.Modeler.AddData.md)
+ [添加和验证访问模式](workbench.Modeler.AccessPatterns.md)
+ [从 CSV 文件导入示例数据](workbench.Modeler.ImportCSV.md)
+ [分面](workbench.Modeler.Facets.md)
+ [使用聚合视图查看数据模型中的所有表](workbench.Modeler.AggregateView.md)
+ [导出数据模型](workbench.Modeler.ExportModel.md)
+ [将数据模型提交至 DynamoDB](workbench.Modeler.Commit.md)

# 创建新数据模型
<a name="workbench.Modeler.CreateNew"></a>

要在 Amazon DynamoDB 中使用 NoSQL Workbench 创建新数据模型，请按照以下步骤操作。

**创建新数据模型**

1.  打开 NoSQL Workbench，然后在主屏幕上选择**手动创建模型**。

    此时将打开一个新页面，其中有您的第一个表，其配置为空。NoSQL Workbench 使用默认名称（即 untitled-2）创建所有新的数据模型，并将它们添加到**草稿**项目文件夹。

1.  在**表配置**屏幕上，指定以下内容：
   +  **表名称**：输入表的唯一名称。
   +  **分区键**：输入分区键名称并指定其类型。或者，您也可以选择更精细的数据类型格式来生成示例数据。
   +  如果您要添加**排序键**，请指定排序键的名称及其类型。或者，您可以选择更精细的数据类型格式来生成示例数据。
**注意**  
 要了解有关主键设计、有效设计和使用分区键以及使用排序键的更多信息，请参阅以下内容：  
 [主键](HowItWorks.CoreComponents.md#HowItWorks.CoreComponents.PrimaryKey) 
 [在 DynamoDB 中设计并有效使用分区键的最佳实践](bp-partition-key-design.md) 
 [在 DynamoDB 中使用排序键整理数据的最佳实践](bp-sort-keys.md) 

1. 您可以添加其他属性来更清楚地验证模型和访问模式。要添加其他属性，请执行以下操作：
   +  选择**添加属性**。
   +  指定属性名称及其类型。
   +  或者，您可以选择更精细的数据类型格式来生成示例数据。

1.  如果要添加全局二级索引，请选择 **Add global secondary index (添加全局二级索引)**。指定 **Global secondary index name (全局二级索引名称)**、**Partition key (分区键)** 属性和 **Projection type (投影类型)**。

   有关在 DynamoDB 中使用全局二级索引的更多信息，请参阅[全局二级索引](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.html)。

1.  您可以选择**添加分面**。分面是 NoSQL Workbench 中的一种虚拟构造。这不是 DynamoDB 中的功能构造。NoSQL Workbench 中的分面可协助您仅使用表中的部分数据，来可视化应用程序对 DynamoDB 的不同数据访问模式。
**注意**  
 我们建议您使用[添加和验证访问模式](workbench.Modeler.AccessPatterns.md)来可视化应用程序将如何访问 DynamoDB 中的数据，而不是使用分面。访问模式反映了您的实际数据库交互，可帮助您为使用案例构建正确的数据模型，分面则是非功能性的可视化。

    选择 **Add facet (添加分面)**。指定以下内容：
   +  **Facet name (分面名称)**。
   +  **分区键别名**，用于帮助区分此分面视图。
   +  **排序键别名**（如果您为表提供了**排序键**）。
   +  选择属于此分面的**属性**。

    如果要添加更多分面，请重复此步骤。

1.  最后，单击**保存**按钮来创建表。

1.  如果您需要其他**表**或**全局二级索引**，请单击刚刚创建的表上方的 **\$1** 图标。

# 导入现有数据模型
<a name="workbench.Modeler.ImportExisting"></a>

您可以在 NoSQL Workbench for Amazon DynamoDB 中通过导入和修改现有模型来构建数据模型。您可以使用 NoSQL Workbench 模型格式或 [AWS CloudFormation JSON 模板格式](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html)导入数据模型。

**导入数据模型**

1.  打开 NoSQL Workbench，然后在主屏幕上选择**导入模型**。您可以使用 NoSQL Workbench 模型格式或 CloudFormation JSON 模板导入数据模型。

1.  您可以将导入的模型添加到现有项目，也可用来创建新项目。如果您没有选择不同的项目，则您的模型将被添加到草稿项目文件夹中。

1.  单击**浏览您的桌面**，然后从计算机中选择要导入的模型。

# 编辑现有数据模型
<a name="workbench.Modeler.Edit"></a>

**编辑现有模型**

1. 要开始对现有模型进行更改，请在建模器页面中打开模型。

1. 在资源选择器面板中，您将看到**表**和**全局二级索引**的列表。

1. 要编辑**表**或**全局二级索引**，请先在资源选择器面板中单击其名称，然后使用顶部的操作图标。可用操作包括**删除**、**复制**和**编辑**。

1. 如果要编辑**模型详细信息**，请单击模型名称旁边的三点图标。

1. 从此处可以单击**编辑模型详细信息**并相应地编辑信息。

1. 从同一个菜单中，您还可以**复制**、**移动**、**删除**和**导出**模型。

1. 要更改为其他模型，您可以再次浏览主屏幕，也可以使用模型选择下拉菜单。

# 将示例数据添加到数据模型
<a name="workbench.Modeler.AddData"></a>

**自动生成示例数据**

1. 打开 NoSQL Workbench，在主屏幕上，单击要向其添加示例数据的模型的名称。

1. 单击主内容工具栏中的其他操作（三点图标），然后选择**添加示例数据**。

1. 输入要生成的示例数据的项目的数量，然后选择**确认**。

1. 自动生成示例数据可帮助您生成 1 到 5000 行数据以供立即使用。您可以指定精细的示例数据类型，以便根据自己的设计和测试需求创建真实数据。要利用该功能生成真实数据，您需要在数据建模器中为属性指定示例数据类型格式。有关指定示例数据类型格式的信息，请参阅[创建新数据模型](workbench.Modeler.CreateNew.md)。

**逐个项目添加示例数据**

1. 打开要编辑的模型，然后选择要向其添加示例数据的表。单击主内容工具栏中的其他操作（三点图标），然后选择**编辑数据**。

1. 现在，您可以添加、删除和编辑行。进行必要的更改后，单击**保存**按钮。

# 添加和验证访问模式
<a name="workbench.Modeler.AccessPatterns"></a>

您可以使用 NoSQL Workbench for Amazon DynamoDB 来创建、存储和验证*访问模式*。

**注意**  
 有关识别正确访问模式的更多详细信息，请参阅[识别数据访问模式](https://docs.aws.amazon.com/prescriptive-guidance/latest/dynamodb-data-modeling/step3.html)。

**创建访问模式**

1.  打开 NoSQL Workbench，在主屏幕上，单击要向其添加访问模式的模型的名称。

1.  在左侧，选择**访问模式**选项卡，然后单击 **\$1** 图标。

1.  在下一个屏幕上，提供**名称**、可选的**描述**、访问模式的**类型**，以及用于测试访问模式的**表**或**全局二级索引**。
**注意**  
 NoSQL Workbench 目前支持访问模式的以下操作：`Scan`、`Query`、`GetItem`、`PutItem`、`UpdateItem`、`DeleteItem`。Amazon DynamoDB 支持更广泛的操作。

1.  创建访问模式后，您可以切换到**验证**选项卡，验证您的数据模型设计是否返回了访问模式的预期结果。有关如何为表自动生成示例数据的详细信息，请参阅[将示例数据添加到数据模型](workbench.Modeler.AddData.md)。不同类型的访问模式支持不同的输入参数。
**注意**  
为了验证访问模式，NoSQL Workbench 在端口 `8001`（默认）上启动一个单独的 DynamoDB local 数据库，表和索引存储在内存中。  
NoSQL Workbench 自动将模型中的示例数据添加到临时表中。
如果您编辑示例数据或数据模型本身，NoSQL Workbench 将更新临时表。
在您关闭应用程序时，此临时数据库将被清除。

**编辑访问模式**

1.  打开 NoSQL Workbench，在主屏幕上，单击要编辑其访问模式的模型的名称。

1.  在左侧，选择**访问模式**选项卡。

1. 要编辑访问模式，请从左侧列表中选择该模式。

1. 在顶部栏中，单击**编辑**操作按钮。

# 从 CSV 文件导入示例数据
<a name="workbench.Modeler.ImportCSV"></a>

如果您在 CSV 文件中已有示例数据，您可以将其导入 NoSQL Workbench。这样就能够快速使用样本数据填充模型，而无需逐行输入数据。

CSV 文件中的列名必须与数据模型中的属性名称匹配，但不需要按相同的顺序排列。例如，如果您的数据模型具有名为 `LoginAlias`、`FirstName` 和 `LastName` 的属性，则 CSV 列可能是 `LastName`、`FirstName` 和 `LoginAlias`。

您一次最多可以从 CSV 文件导入 150 行。

**从 CSV 文件将数据导入 NoSQL Workbench**

1. 要将 CSV 数据导入**表**，请先在资源面板中单击表名称，然后在主内容工具栏中单击其他操作（三点图标）。

1. 选择**导入示例数据**。

1. 选择 CSV 文件并选择 **Open**（打开）。CSV 数据将附加到您的表中。

# 分面
<a name="workbench.Modeler.Facets"></a>

 在 NoSQL Workbench 中，*分面*为您提供了一种方法，用于查看表中的部分数据，而不必查看不符合分面约束的记录。分面是一种可视化数据建模工具，在 DynamoDB 中不作为可用的结构存在，因为它们纯粹是对访问模式建模的帮助。

**注意**  
 我们建议您使用[添加和验证访问模式](workbench.Modeler.AccessPatterns.md)来可视化应用程序将如何访问 DynamoDB 中的数据，而不是使用分面。访问模式反映了您的实际数据库交互，可帮助您为使用案例构建正确的数据模型，分面则是非功能性的可视化。

**创建分面**

1. 在资源选择器面板中，选择要编辑的**表**

1. 在顶部栏中，单击**编辑**操作图标。

1. 向下滚动到**分面筛选条件**部分。

1.  选择 **Add facet (添加分面)**。指定以下内容：
   +  **Facet name (分面名称)**。
   +  **分区键别名**，用于帮助区分此分面视图。
   +  **排序键别名**（如果您为表提供了**排序键**）。
   +  选择属于此分面的**属性**。

    如果要添加更多分面，请重复此步骤。

# 使用聚合视图查看数据模型中的所有表
<a name="workbench.Modeler.AggregateView"></a>

通过 NoSQL Workbench for Amazon DynamoDB 中的聚合视图，您可以可视化数据模型中的所有表和索引。对于每个表，将显示以下信息：
+ 表列名称
+ 示例数据
+ 与表该关联的所有全局二级索引。NoSQL Workbench 显示每个索引的以下信息：
  + 索引列名称
  + 示例数据

**查看所有表信息**

1. 打开 NoSQL Workbench，在主屏幕上，单击要打开的模型的名称。

1. 在顶部栏中，单击**聚合视图**。您将在同一个屏幕上看到所有表和索引中的数据。

**将聚合视图导出为图像**

1. 选中**聚合视图**，单击三点图标并选择**导出聚合视图**

1. 此时系统将提供一个存档供下载，其中包含所有表和索引的 PNG 图像。

# 导出数据模型
<a name="workbench.Modeler.ExportModel"></a>

在使用 NoSQL Workbench for Amazon DynamoDB 创建数据模型后，您可以采用 NoSQL Workbench 模型格式或 [AWS CloudFormation JSON 模板格式](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html)保存和导出模型。

**导出数据模型**

1. 打开 NoSQL Workbench，在主屏幕上，单击要编辑的模型的名称。

1. 单击数据模型名称旁边的三点图标，然后选择**导出模型**。

1.  选择是以 NoSQL Workbench 模型格式还是 CloudFormation JSON 模板格式导出数据模型。
   +  如果您想使用 NoSQL Workbench 与其他团队成员共享模型，或者以后会将其导入 NoSQL Workbench，请选择 **NoSQL Workbench 模型**格式。
   +  如果您想要将模型直接部署到 AWS，或者想要将其集成到基础设施即代码工作流中，请选择 **CloudFormation JSON 模板**格式。

# 将数据模型提交至 DynamoDB
<a name="workbench.Modeler.Commit"></a>

 对数据模型感到满意后，可以将模型提交至 Amazon DynamoDB。

**注意**  
此操作将会为数据模型中呈现的表和全局辅助索引，在 AWS 云端创建服务器端资源。
默认情况下，NoSQL Workbench 会创建具有按需容量的表和索引。

**将数据模型提交至 DynamoDB**

1. 打开 NoSQL Workbench，在主屏幕上，单击要提交的模型的名称。

1. 在顶部栏中，单击**提交**。

1. 选择现有的连接，或者单击**添加新连接**按钮创建新连接。
   + 要添加新连接，请指定以下信息：
     + **账户别名**
     + **AWS 区域**
     + **访问密钥 ID**
     + **秘密访问密钥**

     有关如何获取访问密钥的更多信息，请参阅[获取 AWS 访问密钥](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/SettingUp.DynamoWebService.html#SettingUp.DynamoWebService.GetCredentials)。
   + 您可以选择指定以下内容：
     + [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)
     + [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns)

1. 如果您偏好使用 [DynamoDB local](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html)，请执行以下操作：

   1. 选择**本地连接**选项卡。

   1. 单击**添加新连接**按钮。

   1. 指定 **Connection name (连接名称)** 和 **Port (端口)**。
**注意**  
 要使用 DynamoDB local，您需要在 NoSQL Workbench 屏幕中，使用左下角的 **DynamoDB local** 开关将其启用。

1. 单击**提交**。

# 使用 NoSQL Workbench 浏览数据集和生成操作
<a name="workbench.querybuilder"></a>

NoSQL Workbench for Amazon DynamoDB 为开发和测试查询提供了一个丰富的图形用户界面。您可以使用 NoSQL Workbench 中的操作生成器来查看、浏览和查询实时数据集。结构化操作生成器支持投影表达式、条件表达式，并生成多种语言的示例代码。您可以直接将表从一个 Amazon DynamoDB 账户克隆到不同区域的另一个账户。您还可以直接在 DynamoDB local 账户和 Amazon DynamoDB 账户之间克隆表，以便在开发环境之间更快地复制表的键架构（以及可选的 GSI 架构和项目）。您可以在操作生成器中保存多达 50 个 DynamoDB 数据操作。

**Topics**
+ [连接到实时数据集](workbench.querybuilder.connect.md)
+ [生成复杂操作](workbench.querybuilder.operationbuilder.md)
+ [使用 NoSQL Workbench 克隆表](workbench.querybuilder.cloning-tables.md)
+ [将数据导出到 CSV 文件](workbench.querybuilder.exportcsv.md)

# 连接到实时数据集
<a name="workbench.querybuilder.connect"></a>

要使用 NoSQL Workbench 连接到您的 Amazon DynamoDB 表，必须首先连接到您的 AWS 账户。

**添加与数据库的连接**

1. 在 NoSQL Workbench 的左侧导航窗格中，选择**操作生成器**图标。

1. 选择**添加连接**。

1. 指定以下信息：
   + **连接名称**：
   + **AWS 区域**
   + **访问密钥 ID**
   + **秘密访问密钥**

   有关如何获取访问密钥的更多信息，请参阅[获取 AWS 访问密钥](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/SettingUp.DynamoWebService.html#SettingUp.DynamoWebService.GetCredentials)。

   您可以选择指定以下内容：
   + [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)
   + [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns)

1. 选择**连接**。

    如果您不想注册免费套餐账户，而更愿意使用 [DynamoDB Local（可下载版本）](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html)，则执行下列操作：

   1. 在连接屏幕上选择**本地**选项卡。

   1. 指定以下信息：
      + **连接名称**：
      + **端口**

   1. 选择**连接**按钮。
**注意**  
要连接到 DynamoDB local，请使用终端手动启动 DynamoDB local（参见[在计算机上部署 DynamoDB local](DynamoDBLocal.DownloadingAndRunning.md)），或者使用 NoSQL Workbench 导航菜单中的 DDB local 开关直接启动 DynamoDB local。确保连接端口与您的 DynamoDB local 端口相同。

1. 在创建的连接上，选择**打开**。

在连接到 DynamoDB 数据库后，将在左侧窗格中显示可用表的列表。选择其中一个表可返回存储在表中的数据示例。

现在，您可以对选定表运行查询。

要对表运行查询，请参阅下一部分[生成复杂操作](workbench.querybuilder.operationbuilder.md)中有关构建操作的内容。

# 生成复杂操作
<a name="workbench.querybuilder.operationbuilder"></a>

NoSQL Workbench for Amazon DynamoDB 中的操作生成器提供了一个直观界面，您可以在其中执行复杂的数据层面操作。该界面包含对投影表达式和条件表达式的支持。生成操作后，您可以将其保存以供以后使用（最多可以保存 50 个操作）。然后，可以在**保存的操作**菜单中浏览常用数据层面操作的列表，然后使用它们自动填充和生成新操作。此外，您还可以选择使用多种语言为这些操作生成示例代码。

NoSQL Workbench 支持生成 [PartiQL](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ql-reference.html) for DynamoDB 语句，允许使用与 SQL 兼容的查询语言与 DynamoDB 进行交互。NoSQL Workbench 还支持生成 DynamoDB CRUD API 操作。

要使用 NoSQL Workbench 生成操作，在左侧导航窗格中，选择**操作生成器**图标。

**Topics**
+ [生成 PartiQL 语句](workbench.querybuilder.partiql.md)
+ [生成 API 操作](workbench.querybuilder.operationbuilder.api.md)

# 生成 PartiQL 语句
<a name="workbench.querybuilder.partiql"></a>

要使用 NoSQL Workbench 生成 [PartiQL for DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ql-reference.html) 语句，请选择靠近 NoSQL Workbench UI 顶部的 **PartiQL 编辑器**。

您可以在操作生成器中生成以下 PartiQL 语句类型。

**Topics**
+ [单例语句](#workbench.querybuilder.partiql.single)
+ [事务](#workbench.querybuilder.partiql.transaction)
+ [批处理](#workbench.querybuilder.partiql.batch)

## 单例语句
<a name="workbench.querybuilder.partiql.single"></a>

要为 PartiQL 语句运行或生成代码，请执行以下操作。

1. 选择靠近窗口顶部的 **PartiQL 编辑器**。

1. 输入有效的 [PartiQL 语句](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ql-reference.statements.html)。

1. 如果您的语句使用参数：

   1. 选择**可选请求参数**。

   1. 选择**添加新参数**。

   1. 输入属性类型和值。

   1. 如果要添加其他参数，请重复步骤 b 和 c。

1. 如果要生成代码，请选择**生成代码**。

   从显示的选项卡中选择所需的语言。现在，您便可复制此代码并在应用程序中使用它。

1. 如果要立即执行操作，请选择**执行**。

1. 如果要保存此操作以供日后使用，选择**保存操作**。然后输入操作的名称并选择**保存**。

## 事务
<a name="workbench.querybuilder.partiql.transaction"></a>

要为 PartiQL 事务运行或生成代码，请执行以下操作。

1. 从**更多操作**下拉列表中选择 **PartiQLTransaction**。

1. 选择**添加新语句**。

1. 输入有效的 [PartiQL 语句](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ql-reference.statements.html)。
**注意**  
同一个 PartiQL 事务请求不同时支持读取和写入操作。SELETE 语句不能与 INSERT、UPDATE 和 DELETE 语句在同一请求中。请参阅[使用 PartiQL for DynamoDB 执行事务](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ql-reference.multiplestatements.transactions.html)以了解更多信息。

1. 如果您的语句使用参数

   1. 选择**可选请求参数**。

   1. 选择**添加新参数**。

   1. 输入属性类型和值。

   1. 如果要添加其他参数，请重复步骤 b 和 c。

1. 如果要添加更多语句，请重复步骤 2 至 4。

1. 如果要生成代码，请选择**生成代码**。

   从显示的选项卡中选择所需的语言。现在，您便可复制此代码并在应用程序中使用它。

1. 如果要立即执行操作，请选择**执行**。

1. 如果要保存此操作以供日后使用，选择**保存操作**。然后输入操作的名称并选择**保存**。

## 批处理
<a name="workbench.querybuilder.partiql.batch"></a>

要为 PartiQL 批处理运行或生成代码，请执行以下操作。

1. 从**更多操作**下拉列表中选择 **PartiQLBatch**。

1. 选择**添加新语句**。

1. 输入有效的 [PartiQL 语句](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ql-reference.statements.html)。
**注意**  
 同一个 PartiQL 批处理请求不同时支持读取和写入操作，这意味着 SELECT 语句不能与 INSERT、UPDATE 和 DELETE 语句位于同一请求中。不允许对同一项进行写入操作。与 BatchGetItem 操作一样，只支持单例读取操作。不支持扫描和查询操作。请参阅[使用 PartiQL for DynamoDB 运行批处理操作](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ql-reference.multiplestatements.batching.html)以了解更多信息。

1. 如果您的语句使用参数：

   1. 选择**可选请求参数**。

   1. 选择**添加新参数**。

   1. 输入属性类型和值。

   1. 如果要添加其他参数，请重复步骤 b 和 c。

1. 如果要添加更多语句，请重复步骤 2 至 4。

1. 如果要生成代码，请选择**生成代码**。

   从显示的选项卡中选择所需的语言。现在，您便可复制此代码并在应用程序中使用它。

1. 如果要立即执行操作，请选择**执行**。

1. 如果要保存此操作以供日后使用，选择**保存操作**。然后输入操作的名称并选择**保存**。

# 生成 API 操作
<a name="workbench.querybuilder.operationbuilder.api"></a>

要使用 NoSQL Workbench 生成 DynamoDB CRUD API，请选择 NoSQL Workbench 用户界面左侧的**操作生成器**。

然后选择**打开**并选择一个连接。

您可以在操作生成器中执行以下操作：
+ [删除表](#workbench.querybuilder.operationbuilder.DeleteTable)
+ [创建表](#workbench.querybuilder.operationbuilder.CreateTable)
+ [更新表](#workbench.querybuilder.operationbuilder.UpdateTable)
+ [放置项目](#workbench.querybuilder.operationbuilder.Put)
+ [更新项目](#workbench.querybuilder.operationbuilder.update)
+ [删除项目](#workbench.querybuilder.operationbuilder.Delete)
+ [Query](#workbench.querybuilder.operationbuilder.Query)
+ [Scan](#workbench.querybuilder.operationbuilder.scan)
+ [事务处理获取项目](#workbench.querybuilder.operationbuilder.transactget)
+ [事务处理写入项目](#workbench.querybuilder.operationbuilder.transactwrite)

## 删除表
<a name="workbench.querybuilder.operationbuilder.DeleteTable"></a>

要运行 `Delete Table` 操作，请完成以下步骤。

1. 在**表**部分中找到要删除的表。

1. 从水平省略号菜单中选择**删除表**。

1. 输入**表名称**来确认您要删除该表。

1. 选择**删除**。

有关此操作的更多信息，请参阅《Amazon DynamoDB API 参考》**中的[删除表](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteTable.html)。

## 删除 GSI
<a name="workbench.querybuilder.operationbuilder.DeleteGSI"></a>

要运行 `Delete GSI` 操作，请完成以下步骤。

1. 在**表**部分中找到要删除的表的 GSI。

1. 从水平省略号菜单中选择**删除 GSI**。

1. 输入 **GSI 名称**来确认您要删除该 GSI。

1. 选择**删除**。

有关此操作的更多信息，请参阅《Amazon DynamoDB API 参考》**中的[删除表](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteTable.html)。

## 创建表
<a name="workbench.querybuilder.operationbuilder.CreateTable"></a>

要运行 `Create Table` 操作，请完成以下步骤。

1. 选择**表**部分旁边的 **\$1** 图标。

1. 输入所需的表名称。

1. 创建分区键。

1. 可选：创建排序键。

1. 要自定义容量设置，请取消选中**使用默认容量设置**旁边的复选框。
   + 现在，您可以选择**已预置**或**按需容量**。

     选中“已预置”后，您可以设置最小和最大读取和写入容量单位。您还可以启用或禁用自动扩缩。
   + 如果表当前设置为“按需”，您将无法指定预置吞吐量。
   + 如果您从“按需”切换到“已预置”吞吐量，则自动扩缩将自动应用于所有 GSI，其中，最小值：1，最大值：10；目标：70%。

1. 选择**跳过 GSI 并创建**可创建此表而不创建 GSI。或者，您可以选择**下一步**以创建 GSI 以及此新表。

有关此操作的更多信息，请参阅《Amazon DynamoDB API 参考》**中的[创建表](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html)。

## 创建 GSI
<a name="workbench.querybuilder.operationbuilder.CreateGSI"></a>

要运行 `Create GSI` 操作，请完成以下步骤。

1. 找到要添加 GSI 的表。

1. 从水平省略号菜单中，选择**创建 GSI**。

1. 在**索引名称**下为 GSI 命名。

1. 创建分区键。

1. 可选：创建排序键。

1. 从下拉列表中选择投影类型选项。

1. 选择**创建 GSI**。

有关此操作的更多信息，请参阅《Amazon DynamoDB API 参考》**中的[创建表](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html)。

## 更新表
<a name="workbench.querybuilder.operationbuilder.UpdateTable"></a>

要使用 `Update Table` 操作更新表的容量设置，请执行以下步骤。

1. 找到您要更新容量设置的表。

1. 从水平省略号菜单中，选择**更新容量设置**。

1. 选择**已预置**或**按需容量**。

   选中**已预置**后，您可以设置最小和最大读取和写入容量单位。您还可以启用或禁用自动扩缩。

1. 选择**更新**。

有关此操作的更多信息，请参阅《Amazon DynamoDB API 参考》**中的[更新表](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTable.html)。

## 更新 GSI
<a name="workbench.querybuilder.operationbuilder.UpdateGSI"></a>

要使用 `Update Table` 操作更新 GSI 的容量设置，请执行以下步骤。

**注意**  
默认情况下，全局二级索引继承基表的容量设置。仅当基表采用已预置容量模式时，各个全局二级索引才能具有不同的容量模式。在预置模式表创建全局二级索引时，必须根据该索引的预期工作负载指定读取和写入容量单位。有关更多信息，请参阅 [全局二级索引的预调配吞吐量注意事项](GSI.md#GSI.ThroughputConsiderations)。

1. 找到您要更新容量设置的 GSI。

1. 从水平省略号菜单中，选择**更新容量设置**。

1. 现在，您可以选择**已预置**或**按需容量**。

   选中**已预置**后，您可以设置最小和最大读取和写入容量单位。您还可以启用或禁用自动扩缩。

1. 选择**更新**。

有关此操作的更多信息，请参阅《Amazon DynamoDB API 参考》**中的[更新表](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTable.html)。

## 放置项目
<a name="workbench.querybuilder.operationbuilder.Put"></a>

您可以使用 `Put Item` 操作创建项目。要为 `Put Item` 操作执行或生成代码，请执行以下操作。

1. 找到您要在其中创建项目的表。

1. 从**操作**下拉列表中，选择**创建项目**。

1. 输入分区键值。

1. 输入排序键值（如果存在）。

1. 如果要添加非键属性，请执行以下操作：

   1. 选择 **\$1 添加其他属性**。

   1. 指定**属性名称**、**类型**和**值**。

1. 如果必须满足条件表达式 `Put Item` 操作才能成功，请执行以下操作：

   1. 选择**条件**。

   1. 指定属性名称、比较运算符、属性类型和属性值。

   1. 如果需要其他条件，请再次选择**条件**。

   有关更多信息，请参阅 [DynamoDB 条件表达式 CLI 示例](Expressions.ConditionExpressions.md)。

1. 如果要生成代码，请选择**生成代码**。

   从显示的选项卡中选择所需的语言。现在，您便可复制此代码并在应用程序中使用它。

1. 如果要立即执行操作，请选择**执行**。

1. 如果要保存此操作以供日后使用，选择**保存操作**，然后输入操作的名称，选择**保存**。

有关此操作的更多信息，请参见 *Amazon DynamoDB API 参考*的 [PutItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html)。

## 更新项目
<a name="workbench.querybuilder.operationbuilder.update"></a>

要为 `Update Item` 操作执行或生成代码，请执行以下操作：

1. 找到您要在其中更新项目的表。

1. 选择项目。

1. 输入选定表达式的属性名称和属性值。

1. 如果要添加更多表达式，请在**更新表达式**下拉列表中选择另一个表达式，然后选择 **\$1** 图标。

1. 如果必须满足条件表达式 `Update Item` 操作才能成功，请执行以下操作：

   1. 选择**条件**。

   1. 指定属性名称、比较运算符、属性类型和属性值。

   1. 如果需要其他条件，请再次选择**条件**。

   有关更多信息，请参阅 [DynamoDB 条件表达式 CLI 示例](Expressions.ConditionExpressions.md)。

1. 如果要生成代码，请选择**生成代码**。

   选择所需语言的选项卡。现在，您便可复制此代码并在应用程序中使用它。

1. 如果要立即执行操作，请选择**执行**。

1. 如果要保存此操作以供日后使用，选择**保存操作**，然后输入操作的名称，选择**保存**。

有关此操作的更多信息，请参见 *Amazon DynamoDB API 参考*的 [UpdateItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html)。

## 删除项目
<a name="workbench.querybuilder.operationbuilder.Delete"></a>

要运行 `Delete Item` 操作，请完成以下步骤。

1. 找到您要从中删除项目的表。

1. 选择项目。

1. 从**操作**下拉列表中，选择**删除项目**。

1. 选择**删除**以确认您要删除相应项目。

有关此操作的更多信息，请参见 *Amazon DynamoDB API 参考*的 [DeleteItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html)。

## 重复项目
<a name="workbench.querybuilder.operationbuilder.Duplicate"></a>

您可以创建一个具有相同属性的新项目，从而复制项目。要复制项目，请执行以下操作。

1. 找到您要在其中复制项目的表。

1. 选择项目。

1. 从**操作**下拉列表中，选择**重复项目**。

1. 指定新的分区键。

1. 指定新的排序键（如果需要）。

1. 选择**运行**。

有关此操作的更多信息，请参见 *Amazon DynamoDB API 参考*的 [DeleteItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html)。

## 查询
<a name="workbench.querybuilder.operationbuilder.Query"></a>

要为 `Query` 操作执行或生成代码，请执行以下操作。

1. 从 NoSQL Workbench UI 的顶部选择**查询**。

1. 指定分区键值。

1. 如果 `Query` 操作需要排序键，请执行以下操作：

   1. 选择**排序键**。

   1. 指定比较运算符和属性值。

1. 选择**查询**以运行此查询操作。如果需要更多选项，请选中**更多选项**复选框，然后继续执行以下步骤。

1. 如果并非所有属性都应与操作结果一起返回，请选择**投影表达式**。

1. 选择 **\$1** 图标。

1. 输入要与查询结果一起返回的属性。

1. 如果需要更多属性，请选择 **\$1**。

1. 如果必须满足条件表达式 `Query` 操作才能成功，请执行以下操作：

   1. 选择**条件**。

   1. 指定属性名称、比较运算符、属性类型和属性值。

   1. 如果需要其他条件，请再次选择**条件**。

   有关更多信息，请参阅 [DynamoDB 条件表达式 CLI 示例](Expressions.ConditionExpressions.md)。

1. 如果要生成代码，请选择**生成代码**。

   选择所需语言的选项卡。现在，您便可复制此代码并在应用程序中使用它。

1. 如果要立即执行操作，请选择**执行**。

1. 如果要保存此操作以供日后使用，选择**保存操作**，然后输入操作的名称，选择**保存**。

有关此操作的更多信息，请参见 *Amazon DynamoDB API 参考*的 [Query](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html)。

## Scan
<a name="workbench.querybuilder.operationbuilder.scan"></a>

要为 `Scan` 操作执行或生成代码，请执行以下操作。

1. 从 NoSQL Workbench UI 的顶部选择**扫描**。

1. 选择**扫描**按钮以执行此基本扫描操作。如果需要更多选项，请选中**更多选项**复选框，然后继续执行以下步骤。

1. 指定属性名称可筛选扫描结果。

1. 如果并非所有属性都应与操作结果一起返回，请选择**投影表达式**。

1. 如果必须满足条件表达式扫描操作才能成功，请执行以下操作：

   1. 选择**条件**。

   1. 指定属性名称、比较运算符、属性类型和属性值。

   1. 如果需要其他条件，请再次选择**条件**。

   有关更多信息，请参阅 [DynamoDB 条件表达式 CLI 示例](Expressions.ConditionExpressions.md)。

1. 如果要生成代码，请选择**生成代码**。

   选择所需语言的选项卡。现在，您便可复制此代码并在应用程序中使用它。

1. 如果要立即执行操作，请选择**执行**。

1. 如果要保存此操作以供日后使用，选择**保存操作**，然后输入操作的名称，选择**保存**。

## TransactGetItems
<a name="workbench.querybuilder.operationbuilder.transactget"></a>

要为 `TransactGetItems` 操作执行或生成代码，请执行以下操作。

1. 从 NoSQL Workbench UI 顶部的**更多操作**下拉列表中，选择 **TransactGetItems**。

1. 选择 **TransactGetItem** 旁边的 **\$1** 图标。

1. 指定分区键。

1. 指定排序键（如果需要）。

1. 选择**运行**可执行操作，选择**保存操作**可进行保存，或者选择**生成代码**可为操作生成代码。

有关事务的更多信息，请参阅 [Amazon DynamoDB Transactions](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/transactions.html)。

## TransactWriteItems
<a name="workbench.querybuilder.operationbuilder.transactwrite"></a>

要为 `TransactWriteItems` 操作执行或生成代码，请执行以下操作。

1. 从 NoSQL Workbench UI 顶部的**更多操作**下拉列表中，选择 **TransactWriteItems**。

1. 从**操作**下拉列表中选择一个操作。

1. 选择 **TransactWriteItem** 旁边的 **\$1** 图标。

1. 在**操作**下拉列表中，选择您要执行的操作。
   + 对于 `DeleteItem`，按照 [删除项目](#workbench.querybuilder.operationbuilder.Delete) 操作的说明操作。
   + 对于 `PutItem`，按照 [放置项目](#workbench.querybuilder.operationbuilder.Put) 操作的说明操作。
   + 对于 `UpdateItem`，按照 [更新项目](#workbench.querybuilder.operationbuilder.update) 操作的说明操作。

   要更改操作的顺序，请在左侧列表中选择一项操作，然后选择向上或向下箭头以在列表中将其上移或下移。

   要删除一项操作，请在列表中选择该操作，然后选择**删除**（垃圾桶）图标。

1. 选择**运行**可执行操作，选择**保存操作**可进行保存，或者选择**生成代码**可为操作生成代码。

有关事务的更多信息，请参阅 [Amazon DynamoDB Transactions](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/transactions.html)。

# 使用 NoSQL Workbench 克隆表
<a name="workbench.querybuilder.cloning-tables"></a>

克隆表将在您的开发环境之间复制表的键架构（以及可选的 GSI 架构和项目）。您可以将表从 DynamoDB local 克隆到 Amazon DynamoDB 账户，甚至可以将表从一个账户克隆到不同区域中的另一个账户，以便更快地进行实验。

**克隆表**

1. 在**操作生成器**中，选择您的连接和区域（DynamoDB local 不支持区域选择）。

1. 连接到 DynamoDB 后，浏览表，然后选择要克隆的表。

1. 从水平省略号菜单中，选择**克隆**选项。

1. 输入您的克隆目标详细信息：

   1. 选择连接。

   1. 选择一个区域（区域不适用于 DynamoDB local）。

   1. 输入新的表名称。

   1. 选择克隆选项：

      1. 默认情况下，**键架构**处于选中状态，无法取消选择。默认情况下，克隆表将复制您的主键和排序键（如果有）。

      1. 如果要克隆的表具有 GSI，则默认情况下会选择 **GSI 架构**。克隆表将复制您的 GSI 主键和排序键（如果有）。您可以选择取消选择 GSI 架构以跳过克隆 GSI 架构。克隆表会将基表的容量设置复制为 GSI 的容量设置。克隆完成后，您可以使用操作生成器中的 `UpdateTable` 操作来更新表的 GSI 容量设置。

1. 输入要克隆的项目数量。要仅克隆键架构和可选的 GSI 架构，可以将**要克隆的项目**值保持为 0。可以克隆的最大项目数为 5000。

1. 选择容量模式：

   1. 默认情况下，系统将选择**按需模式**。DynamoDB on-demand 针对读写请求提供按请求支付定价，只需为使用的资源付费。要了解更多信息，请参阅 [DynamoDB 按需模式](capacity-mode.md#capacity-mode-on-demand)。

   1. **预置模式**允许您为应用程序指定需要的每秒读取和写入次数。您可以使用自动扩缩根据流量变化自动调整表的预置容量。要了解更多信息，请参阅 [DynamoDB 预置模式](provisioned-capacity-mode.md)。

1. 选择**克隆**开始克隆。

1. 克隆过程将在后台运行。当克隆表状态发生变化时，**操作生成器**选项卡将显示一条通知。您可以通过选择**操作生成器**选项卡，然后选择箭头按钮来访问此状态。箭头按钮位于菜单侧栏底部附近的克隆表状态控件上。

# 将数据导出到 CSV 文件
<a name="workbench.querybuilder.exportcsv"></a>

您可以将操作生成器中的查询结果导出到 CSV 文件。这样就能够将数据加载到电子表格中，或使用首选编程语言对其进行处理。

**导出到 CSV**

1. 在操作生成器中，运行您选择的操作，例如扫描或查询。
**注意**  
您只能将读取 API 操作和 PartiQL 语句的结果导出到 CSV 文件中。您无法从事务读取语句中导出结果。
目前，您可以一次一页将结果导出到 CSV 文件。如果有多页结果，则必须单独导出每页。

1. 选择要从结果中导出的项目。

1. 在**操作**下拉列表中，选择**导出为 CSV**。

1. 选择 CSV 文件的文件名和位置，然后选择**保存**。

# NoSQL Workbench 的示例数据模型
<a name="workbench.SampleModels"></a>

建模器的主页显示了一些随 NoSQL Workbench 提供的示例模型。本节介绍了这些模型及其潜在用途。

**Topics**
+ [员工数据模型](#workbench.SampleModels.EmployeeDataModel)
+ [论坛数据模型](#workbench.SampleModels.DiscussionForumDataModel)
+ [音乐库数据模型](#workbench.SampleModels.MusicLibraryDataModel)
+ [滑雪胜地数据模型](#workbench.SampleModels.SkiResortDataModel)
+ [信用卡优惠数据模型](#workbench.SampleModels.CreditCardOffersDataModel)
+ [书签数据模型](#workbench.SampleModels.BookmarksDataModel)

## 员工数据模型
<a name="workbench.SampleModels.EmployeeDataModel"></a>

该数据模型是一个入门模型。它表示员工的基本详细信息，例如唯一的别名、名字、姓氏、职务、经理和技能。

该数据模型描述了一些技术，例如处理复杂的属性，具有多种技能，等等。该模型也是经理及其下属员工建立的一对多关系示例，这是通过二级索引 DirectReports 实现的。

该数据模型实现的访问模式是：
+ 使用员工的登录别名检索员工记录，这是通过名为 `Employee` 的表实现的。
+ 按姓名搜索员工，这是通过名为 `Name` 的 Employee 表全局二级索引实现的。
+ 使用经理的登录别名检索经理的所有直接下属，这是通过名为 `DirectReports` 的 Employee 表全局二级索引实现的。

## 论坛数据模型
<a name="workbench.SampleModels.DiscussionForumDataModel"></a>

该数据模型表示一个论坛。通过使用该模型，客户可以加入开发人员社区，提问以及回复其他客户的帖子。每个 AWS 服务都有一个专门的论坛。任何人可以在论坛中发布消息以发起新的讨论话题，每个话题会收到任意数量的回复。

该数据模型实现的访问模式是：
+ 使用论坛的名称检索论坛记录，这是通过名为 `Forum` 的表实现的。
+ 检索论坛的特定话题或所有话题，这是通过名为 `Thread` 的表实现的。
+ 使用发布用户的电子邮件地址搜索回复，这是通过名为 `PostedBy-Message-Index` 的 Reply 表全局二级索引实现的。

## 音乐库数据模型
<a name="workbench.SampleModels.MusicLibraryDataModel"></a>

该数据模型表示一个音乐库，其中包含大量歌曲，并以近乎实时的方式展示下载最多的歌曲。

该数据模型实现的访问模式是：
+ 检索歌曲记录，这是通过名为 `Songs` 的表实现的。
+ 检索歌曲的特定下载记录或所有下载记录，这是通过名为 `Songs` 的表实现的。
+ 检索歌曲的特定月度下载数记录或所有月度下载数记录，这是通过名为 `Song` 的表实现的。
+ 检索歌曲的所有记录（包括歌曲记录、下载记录和月度下载数记录），这是通过名为 `Songs` 的表实现的。
+ 搜索下载最多的歌曲，这是通过名为 `DownloadsByMonth` 的 Songs 表全局二级索引实现的。

## 滑雪胜地数据模型
<a name="workbench.SampleModels.SkiResortDataModel"></a>

该数据模型表示一个滑雪胜地，该滑雪胜地每天收集每个滑雪缆车的大量数据。

该数据模型实现的访问模式是：
+ 检索给定滑雪缆车或整个滑雪胜地的所有数据（动态和静态），这是通过名为 `SkiLifts` 的表实现的。
+ 检索特定日期的滑雪缆车或整个滑雪胜地的所有动态数据（包括独特缆车乘员、积雪量、雪崩危险和缆车状态），这是通过名为 `SkiLifts` 的表实现的。
+ 检索特定滑雪缆车的所有静态数据（包括缆车是否仅供有经验的乘员使用、缆车上升的垂直高度和缆车乘坐时间），这是通过名为 `SkiLifts` 的表实现的。
+ 检索特定滑雪缆车或整个滑雪胜地的数据记录日期（按总独特乘员数排序），这是通过名为 `SkiLiftsByRiders` 的 SkiLifts 表全局二级索引实现的。

## 信用卡优惠数据模型
<a name="workbench.SampleModels.CreditCardOffersDataModel"></a>

该数据模型由信用卡优惠应用程序使用。

信用卡提供商在一段时间内提供优惠。这些优惠包括免费余额转账、增加信用额度、降低利率、现金返还和航空里程数。在客户接受或拒绝这些优惠后，将相应地更新优惠状态。

该数据模型实现的访问模式是：
+ 使用 `AccountId` 检索账户记录，这是通过主表实现的。
+ 检索几乎没有映射项目的所有账户，这是通过二级索引 `AccountIndex` 实现的。
+ 使用 `AccountId` 检索账户以及与这些账户关联的所有优惠记录，这是通过主表实现的。
+ 使用 `AccountId` 和 `OfferId` 检索账户以及与这些账户关联的特定优惠记录，这是通过主表实现的。
+ 使用 `ACCEPTED/DECLINED`、`OfferType` 和 `AccountId` 检索与账户关联的特定 `OfferType` 的所有 `Status` 优惠记录，这是通过二级索引 `GSI1` 实现的。
+ 使用 `OfferId` 检索优惠和关联的优惠项目记录，这是通过主表实现的。

## 书签数据模型
<a name="workbench.SampleModels.BookmarksDataModel"></a>

该数据模型是客户使用的存储书签。

一个客户可以具有很多书签，并且一个书签可以属于很多客户。该数据模型表示多对多关系。

该数据模型实现的访问模式是：
+ 现在，按 `customerId` 运行的单个查询可以返回客户数据以及书签。
+ 查询 `ByEmail` 索引按电子邮件地址返回客户数据。请注意，不会按该索引检索书签。
+ 查询 `ByUrl` 索引按 URL 获取书签数据。请注意，我们将 customerId 作为索引的排序键，因为多个客户可能为同一 URL 添加书签。
+ 查询 `ByCustomerFolder` 索引按文件夹获取每个客户的书签。

# NoSQL Workbench 的发布历史记录
<a name="WorkbenchDocumentHistory"></a>

下表介绍了 *NoSQL Workbench* 客户端工具每一版中的重要更改。


****  

| 版本 | 更改 | 描述 | 日期 | 
| --- | --- | --- | --- | 
| 3.20.0 | 适用于 DynamoDB 的全新数据建模器 | 适用于 DynamoDB 的数据建模器提升了用户体验。适用于 DynamoDB 的数据建模器现在支持访问模式。 | 2026 年 2 月 16 日 | 
| 3.13.5 | 默认表设置的容量模式现在为按需 | 使用默认设置创建表时，DynamoDB 会创建一个使用按需容量模式而不是预置容量模式的表。 | 2025 年 2 月 24 日 | 
| 3.13.0 | NoSQL Workbench 操作生成器改进 | NoSQL Workbench 现在包含对深色模式的原生支持。改进了操作生成器中的表和项目操作。以 JSON 文件格式提供项目结果和操作生成器请求信息。 | 2024 年 4 月 24 日 | 
| 3.12.0 | 使用 NoSQL Workbench 克隆表并返回已消耗的容量 | 现在，您可以在 DynamoDB local 账户和 DynamoDB Web 服务账户之间或者在 DynamoDB Web 服务账户之间克隆表，从而加快开发迭代速度。使用操作生成器查看运行操作后消耗的 RCU 或 WCU。我们修复了从 CSV 文件导入时的覆盖数据问题。 | 2024 年 2 月 26 日  | 
| 3.11.0 |  DynamoDB local 改进  |  现在，您可以在启动内置 DynamoDB local 实例时指定端口。现在，无需管理员权限即可在 Windows 上安装 NoSQL Workbench。我们更新了数据模型模板。  |  2024 年 1 月 17 日  | 
| 3.10.0 |  对 Apple 硅芯片的原生支持  |   NoSQL Workbench 现在纳入对采用 Apple 硅芯片的 Mac 的原生支持。现在，您可以为 `Number` 类型的属性配置示例数据生成格式。  |  2023 年 12 月 5 日  | 
| 3.9.0 |  数据建模器改进  |   可视化工具现在支持将数据模型提交到 DynamoDB local，并提供覆盖现有表的选项。  |  2023 年 11 月 3 日  | 
| 3.8.0 |  示例数据生成  |  NoSQL Workbench 现在支持为您的 DynamoDB 数据模型生成示例数据。  |  2023 年 9 月 25 日  | 
| 3.6.0 |  操作生成器中的改进  |  操作生成器中的连接管理改进。现在可以在不删除数据的情况下更改数据建模器中的属性名称。其他错误修复。  |  2023 年 4 月 11 日  | 
| 3.5.0 |  对新的 AWS 区域的支持  |  NoSQL Workbench 现在支持 ap-south-2、ap-southeast-3、ap-southeast-4、eu-central-2、eu-south-2、me-central-1 和 me-west-1 区域。  |  2023 年 2 月 23 日  | 
| 3.4.0 |  对 DynamoDB local 的支持  |  NoSQL Workbench 现在支持安装 DynamoDB local 作为安装过程的一部分。  |  2022 年 12 月 6 日  | 
| 3.3.0 |  对控制面板操作的支持  |  操作生成器现在支持控制面板操作。  |  2022 年 6 月 1 日  | 
| 3.2.0 |  CSV 导入和导出  |  现在，您可以在可视化工具中从 CSV 文件导入示例数据，还可以将操作生成器查询的结果导出到 CSV 文件。  |  2021 年 10 月 11 日  | 
| 3.1.0 |  保存操作  |  NoSQL Workbench 的操作生成器现在支持保存操作以供以后使用。  |  2021 年 7 月 12 日  | 
| 3.0.0 | 容量设置和 CloudFormation 导入/导出 | NoSQL Workbench for Amazon DynamoDB 现在支持为表指定读/写容量模式，现在可以导入和导出 CloudFormation 格式的日期和时间模型。 | 2021 年 4 月 21 日 | 
| 2.2.0 | PartiQL 支持 | NoSQL Workbench for Amazon DynamoDB 增加为 DynamoDB 生成 PartiQL 语句的支持。 | 2020 年 12 月 4 日 | 
| 1.1.0 | 支持 Linux。 | Linux 支持 NoSQL Workbench for Amazon DynamoDB - Ubuntu、Fedora 和 Debian。 | 2020 年 5 月 4 日 | 
| 1.0.0 | NoSQL Workbench for Amazon DynamoDB – 全面开放。 | 适用于 Amazon DynamoDB 的 NoSQL Workbench 已正式推出。 | 2020 年 3 月 2 日 | 
| 0.4.1 | 支持 IAM 角色和临时安全凭证。 | NoSQL Workbench for Amazon DynamoDB 增加对 AWS Identity and Access Management (IAM) 角色和临时安全凭证的支持。 | 2019 年 12 月 19 日 | 
| 0.3.1 | 对 [DynamoDB local（可下载版本）](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html)的支持。 | NoSQL Workbench 现在支持连接到 [DynamoDB local（可下载版本）](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html)，以设计、创建、查询和管理 DynamoDB 表。 | 2019 年 11 月 8 日 | 
| 0.2.1 | NoSQL Workbench 预览版已发布。 | 这是 NoSQL Workbench for DynamoDB 的初始版本。使用 NoSQL Workbench 设计、创建、查询和管理 DynamoDB 表。 | 2019 年 9 月 16 日 | 