You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

每次查询消耗多少DynamoDB读写容量?是否有对应API可查询?

有的,DynamoDB 所有读写操作的原生 API 都直接支持返回实际消耗的容量数值,不需要额外调用独立 API。

配置方法

你只需要在发起读写请求时,给请求参数加上 ReturnConsumedCapacity 字段,设置为你需要的返回粒度即可,该参数可选值如下:

  • TOTAL:仅返回本次操作消耗的总容量数值
  • INDEXES:返回基表+所有涉及的二级索引的容量消耗明细
  • NONE:不返回容量信息(默认值,未配置时不会返回对应字段)
支持的操作范围

所有读写类操作均支持该参数,常见的包括:

  • 单条目操作:GetItem、PutItem、UpdateItem、DeleteItem
  • 批量操作:BatchGetItem、BatchWriteItem
  • 查询扫描操作:Query、Scan
  • 事务操作:TransactGetItems、TransactWriteItems
返回字段说明

开启参数后,响应体的 ConsumedCapacity 结构体就会包含容量消耗数据,核心字段如下:

  • CapacityUnits:总消耗容量单位,读操作对应读容量单位、写操作对应写容量单位
  • ReadCapacityUnits:单独统计的读容量消耗
  • WriteCapacityUnits:单独统计的写容量消耗
  • 选择INDEXES粒度时,还会返回GlobalSecondaryIndexes、LocalSecondaryIndexes字段,分别列出每个索引的单独消耗

返回的数值已经自动兼容了读写一致性级别、条目大小、索引占用所有影响容量计算的因素,和官方计费统计的数值完全一致,不需要你再做额外换算。

调用示例(Python boto3 为例)
import boto3
from boto3.dynamodb.conditions import Key

dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('你的表名')

# 发起Query请求时开启容量返回
resp = table.query(
    KeyConditionExpression=Key('分区键').eq('你的键值'),
    ReturnConsumedCapacity='TOTAL'
)

# 直接读取实际消耗的读容量
print("本次查询实际消耗读容量:", resp['ConsumedCapacity']['ReadCapacityUnits'])

内容的提问来源于stack exchange,提问作者mcan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 19:57:00