📜  AWS DynamoDB

📅  最后修改于: 2020-11-07 03:20:11             🧑  作者: Mango

什么是DynamoDB?

  • Amazon DynamoDB是一种快速,灵活的NoSQL数据库服务,适用于所有需要任何规模的一致单位毫秒毫秒延迟的应用程序。
  • 它是一个完全托管的数据库,同时支持文档和键值数据模型。
  • 其灵活的数据模型和性能使其非常适合移动,网络,游戏,广告技术,物联网和许多其他应用。
  • 它存储在SSD存储器中。
  • 它分布在三个地理数据中心。

由于可以在三个地理数据中心使用,因此它包含两种不同类型的一致性模型:

  • 最终一致性读取
  • 高度一致的读取

最终一致性读取

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

高度一致的读取

高度一致的读取返回一个结果,该结果反映了在读取之前收到成功响应的所有写入。

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

AWS DynamoDB吞吐量

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

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

  • 预配模式
  • 按需模式

预配模式

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

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

  • 读取容量单位
  • 写容量单位

读取容量单位

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

写容量单位

  • 写入容量单位的总数取决于项目大小。
  • 大小不超过1KB的项目仅需要1个写入容量单位。
  • 当大小大于1KB时,DynamoDB将需要其他写入容量单位。例如,如果项目大小为2KB,则需要两个写入容量单位才能每秒执行1次写入。
  • 例如,如果您创建一个具有20个写容量单位的表,那么对于大小最大为1KB的项目,您每秒可以执行20次写操作。

按需模式

  • DynamoDB按需模式具有一个灵活的新计费选项,该选项能够在不进行任何容量规划的情况下每秒处理数千个请求。
  • 按需模式为读写请求提供按请求付费的价格,因此您只需要为使用的内容付费,因此可以轻松平衡成本和性能。
  • 在按需模式下,DynamoDb可在流量水平增加或减少时立即适应客户的工作量。
  • 按需模式支持除自动缩放外的所有DynamoDB功能,例如加密,时间点恢复等。
  • 如果您不执行任何读/写操作,则只需要为数据存储付费。
  • 按需模式对于那些流量无法预测的应用程序很有用,并且数据库的预测非常复杂。