我的 DynamoDB 表被限制

上次更新时间:2020 年 1 月 9 日

我的 Amazon DynamoDB 表上的读取或写入操作被限制。为什么会出现这种情况,我该怎样解决呢?

简短描述

DynamoDB 表上的每个分区都受到 1000 个 写入容量单位和 3000 个读取容量单位的硬性限制。如果您的工作负载不均匀分布在各分区间,或者如果工作负载依赖于短时间高利用率(读取或写入活动突增),表格可能会受到限制。

DynamoDB 自适应容量自动为高流量分区提高吞吐容量。但是,每个分区仍会受到硬性限制。这意味着自适应容量无法解决表格或分区设计的更大问题。要避免热点分区和限制,请优化您的表和分区结构。

解决方法

实施以下任一解决方案之前,使用 Amazon CloudWatch Contributor Insights 查找表格中访问最多和限制最多的项目。然后,使用最适合您的使用案例的解决方案解决限制问题。

  • 在表格内尽可能均匀地分布读取和写入操作。 热点分区可能会降低表的总体性能。有关更多信息,请参阅设计分区键以均匀分布您的工作负载
  • 实施缓存解决方案。如果您的工作负载主要是对静态数据的读取访问,当数据处于设计良好的缓存而非数据库中时,可以更快地传输查询结果。DynamoDB Accelerator (DAX) 是一项缓存服务,可为您的应用程序提供极高的内存内性能。您还可以使用 Amazon ElastiCache
  • 实施错误重试和指数退避。 指数退避可通过逐渐延长两次重试间的等待时间来提高应用程序的可靠性。如果您使用 AWS 开发工具包,则此逻辑是内置的。如果您不使用 AWS 开发工具包,请考虑手动实施指数退避。有关更多信息,请参阅 AWS 中的错误重试和指数退避