DynamoDB - 基本概念

在使用DynamoDB之前,您必须熟悉其基本组件和生态系统。 在 DynamoDB 生态系统中,您使用表、属性和项目。 表保存项目集,项目保存属性集。 属性是不需要进一步分解的数据的基本元素,即字段。

主键

主键作为表项的唯一标识手段,二级索引提供查询灵活性。 DynamoDB 流通过修改表数据来记录事件。

建表不仅需要设置名称,还需要设置主键; 它标识表项。 没有两个项目共享一个密钥。 DynamoDB 使用两种类型的主键 −

  • 分区键 − 这个简单的主键由一个称为"分区键"的属性组成。 在内部,DynamoDB 使用键值作为哈希函数的输入来确定存储。

  • 分区键和排序键 − 该键称为"复合主键",由两个属性组成。

  • 分区键和

  • 排序键。

DynamoDB 将第一个属性应用于哈希函数,并将具有相同分区键的项目存储在一起; 它们的顺序由排序键确定。 项目可以共享分区键,但不能共享排序键。

主键属性仅允许标量(单个)值; 以及字符串、数字或二进制数据类型。 非键属性没有这些约束。

二级索引

这些索引允许您使用备用键查询表数据。 尽管 DynamoDB 不强制使用它们,但它们优化了查询。

DynamoDB 使用两种类型的二级索引 −

  • 全球二级指数 − 该索引拥有分区键和排序键,它们可以与表键不同。

  • 本地二级索引 − 该索引拥有与表相同的分区键,但排序键不同。

API

DynamoDB 提供的 API 操作包括控制平面、数据平面(例如创建、读取、更新和删除)和流的 API 操作。 在控制平面操作中,您可以使用以下工具创建和管理表 −

  • 创建表
  • 描述表格
  • 列表
  • 更新表
  • 删除表

在数据平面中,您可以使用以下工具执行 CRUD 操作 −

创建 读取 更新 删除

PutItem

BatchWriteItem

GetItem

BatchGetItem

Query

Scan

UpdateItem

DeleteItem

BatchWriteItem

流操作控制表流。 您可以查看以下流媒体工具 −

  • 列表流
  • 描述流
  • 获取ShardIterator
  • 获取记录

配置的吞吐量

在表创建中,您可以指定预置吞吐量,这会预留用于读取和写入的资源。 您可以使用容量单位来测量和设置吞吐量。

当应用程序超过设定的吞吐量时,请求将失败。 DynamoDB GUI 控制台允许监控设置和使用的吞吐量,以实现更好的动态配置。

读取一致性

DynamoDB 使用最终一致强一致读取来支持动态应用程序需求。 最终一致的读取并不总是提供当前数据。

强一致性读取始终提供当前数据(设备故障或网络问题除外)。 最终一致性读取作为默认设置,需要在 ConstantRead 参数中设置 true 才能更改它。

分区

DynamoDB 使用分区进行数据存储。 表的这些存储分配有 SSD 支持并自动跨区域复制。 DynamoDB 管理所有分区任务,无需用户参与。

创建表时,表进入CREATING状态,分配分区。 当它达到ACTIVE状态时,您可以执行操作。 当系统容量达到最大或您更改吞吐量时,系统会更改分区。