根据有关容量单位计算的文档,每个请求最多只能分析 1MB 的数据。
在扫描操作的情况下,它不是扫描返回的项目的大小,而是 Amazon DynamoDB 评估的项目的大小。也就是说,对于扫描请求,Amazon DynamoDB 最多评估 1 MB 的项目并仅返回满足扫描条件的项目。
对于仅包含 1,000 个项目的表,理论上它每次都会解析所有表。希望“限制”参数(最大值为 100)允许更早地停止该过程,以便limit
返回最多的项目。
如果您的请求不涉及任何条件,则扫描的项目计数将是结果的数量。否则,它可能会大得多,但扫描项目的累积大小不能超过 1MB 的边界。
对于扫描操作,亚马逊会认为您已消耗
consumed_capacity = math.ceil(sum(parsed_data_size)/1KB)
但是请不要相信我的话:
import boto
db = boto.connect_dynamodb()
# Notice the "layer1" operation
res = db.layer1.scan('MyTable', attributes_to_get=['id'], limit=10)
print res['ScannedCount']