📅  最后修改于: 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功能,例如加密,时间点恢复等。
- 如果您不执行任何读/写操作,则只需要为数据存储付费。
- 按需模式对于那些流量无法预测的应用程序很有用,并且数据库的预测非常复杂。