什么是 DynamoDB?

2025年3月17日 | 阅读 3 分钟
  • Amazon DynamoDB 是一种快速灵活的 NoSQL 数据库服务,适用于所有需要以任何规模提供一致的个位数毫秒级延迟的应用程序。
  • 它是一个完全托管的数据库,支持文档和键值数据模型。
  • 它灵活的数据模型和性能使其非常适合移动、Web、游戏、广告技术、物联网以及许多其他应用程序。
  • 它存储在 SSD 存储中。
  • 它分布在三个地理数据中心中。
DynamoDB

由于其在三个地理数据中心中的可用性,它由两种不同类型的一致性模型组成

  • 最终一致性读取
  • 强一致性读取

最终一致性读取

它在数据的各个副本之间保持一致性,通常在一秒钟内达到。 如果您从 DynamoDB 表中读取数据,那么响应将不会反映最近完成的写入操作,并且如果您在短时间内重复读取数据,则响应将是最新更新。 这是读取性能的最佳模型。

强一致性读取

强一致性读取返回的结果反映了在读取之前收到成功响应的所有写入操作。

注意:如果您的应用程序希望立即从 DynamoDB 表中获取数据,请选择强一致性读取模型。 如果您可以等待一秒钟,请选择最终一致性模型。

AWS DynamoDB 吞吐量容量

DynamoDB 吞吐量容量取决于用于对表执行读取/写入操作的读取/写入容量模式。

DynamoDB

有两种类型的读取/写入容量模式

  • 预置模式
  • 按需模式

预置模式

  • 它定义了应用程序可以从指定表使用的最大容量。
  • 在预置模式下,您需要指定应用程序每秒所需的读取和写入次数。
  • 如果超过预置模式吞吐量容量的限制,则会导致请求被限制。
  • 预置模式适用于流量可预测且一致的应用程序。
DynamoDB

预置模式由两个容量单位组成

  • 读取容量单元
  • 写入容量单元

读取容量单元

  • 读取容量单元的总数取决于项目大小和读取一致性模型。
  • 读取容量单元代表两种类型的一致性模型
    • 强一致性模型: 读取容量单元代表每秒针对最大 4KB 大小的项目进行一次强一致性读取。
    • 最终一致性模型: 读取容量单元代表每秒针对最大 4KB 大小的项目进行两次最终一致性读取。
  • 当项目大小大于 4KB 时,DynamoDB 将需要额外的读取容量单元。 例如,如果项目的大小为 8KB,则强一致性读取需要 2 个读取容量单元,而最终一致性读取需要 1 个读取容量单元。

写入容量单元

  • 写入容量单元的总数取决于项目大小。
  • 对于最大 1KB 大小的项目,只需要 1 个写入容量单元。
  • 当大小大于 1KB 时,DynamoDB 将需要额外的写入容量单元。 例如,如果项目大小为 2KB,则需要两个写入容量单元才能每秒执行 1 次写入。
  • 例如,如果您创建一个包含 20 个写入容量单元的表,则可以每秒对最大 1KB 大小的项目执行 20 次写入。

按需模式

  • DynamoDB 按需模式具有灵活的新计费选项,能够在每秒处理数千个请求,而无需任何容量规划。
  • 按需模式为读取和写入请求提供按请求付费的定价,因此您只需为所使用的内容付费,从而易于平衡成本和性能。
  • 在按需模式下,DynamoDb 会根据流量水平的增加或减少立即适应客户的工作负载。
  • 按需模式支持所有 DynamoDB 功能,例如加密、时间点恢复等,但自动缩放除外
  • 如果您不执行任何读取/写入,那么您只需为数据存储付费。
  • 按需模式适用于那些流量不可预测且数据库难以预测的应用程序。

下一主题AWS Aurora