📜  DynamoDB-基本概念

📅  最后修改于: 2020-11-28 13:54:29             🧑  作者: Mango


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

首要的关键

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

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

  • 分区键-此简单的主键包含一个称为“分区键”的属性。在内部,DynamoDB使用键值作为哈希函数的输入来确定存储。

  • 分区键和排序键-此键称为“复合主键”,由两个属性组成。

    • 分区键和

    • 排序键。

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

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

次要指标

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

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

  • 全局二级索引-该索引具有分区键和排序键,可能与表键不同。

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

API

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

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

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

Create Read Update Delete

PutItem

BatchWriteItem

GetItem

BatchGetItem

Query

Scan

UpdateItem

DeleteItem

BatchWriteItem

流操作控制表流。您可以查看以下流工具-

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

预置吞吐量

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

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

读取一致性

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

高度一致的读取将始终提供当前数据(设备故障或网络问题除外)。最终,一致性读取用作默认设置,要求ConsistentRead参数中的设置为true才能更改它。

分区

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

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