DynamoDB分区容量限制与表总RCU/WCU关联及分区数查询咨询
DynamoDB分区容量规则与分区数量查询说明
分区硬限制与表总RCU/WCU的关联
DynamoDB单分区的容量硬限制为固定值:最多支持3000读容量单元(RCU)、1000写容量单元(WCU),该限制不会随表的总容量配置调整而变化。
表的总RCU/WCU会均匀分配给所有现存分区,不存在多分区争抢总容量的情况,所有分区的可用RCU之和、可用WCU之和分别等于表的总配置值,且单个分区分配到的RCU/WCU不会超过上述硬限制。
当你调高表总RCU/WCU后,如果平均分配给现有分区后会超过单分区硬限制,DynamoDB会自动拆分分区,增加分区数量后再重新平均分配容量配额。
举你提到的例子:当表总配置为6000 RCU、3000 WCU时,DynamoDB会按照规则计算初始分区数,分区数取两个计算结果的最大值:
- 按容量配置计算:向上取整(总WCU/1000) + 向上取整(总RCU/3000) = 3 + 2 = 3
- 按数据量计算:向上取整(表总数据大小/10GB),如果是空表该值为1
所以最终初始分区数为3,每个分区分配到2000 RCU、1000 WCU,均符合单分区硬限制要求。
补充说明:如果开启了DynamoDB自适应容量,当出现热点分区时,系统会临时调整各分区的配额分配,将闲置分区的配额转移给热点分区使用,但单分区的硬限制依然生效,热点分区最多只能用到3000RCU、1000WCU。
分区数量的查询方式
DynamoDB没有直接暴露表当前分区数量的公开指标,你可以通过以下两种方式获取近似值:
- 公式估算:分区数 = MAX( 向上取整(表总WCU/1000) + 向上取整(表总RCU/3000), 向上取整(表总数据大小/10GB) )
- CloudWatch指标反推:查看表的
ConsumedReadCapacityUnits、ConsumedWriteCapacityUnits的峰值,当出现因单分区达到硬限制触发的限流时,用对应时间点的总消耗容量除以单分区硬限制,即可得到近似的分区数量。
内容的提问来源于stack exchange,提问作者Joey Yi Zhao
相关产品推荐
相关产品推荐

