好的,所以我对读取单位的理解是每件物品需要1个读取单位,除非该项目超过4KB,在这种情况下读取单位=天花板(项目大小/ 4)。
但是,当我提交扫描要求80个项目(预配置吞吐量为100)时,响应会返回2.5或3个读取单位的ConsumedCapacity。这令人沮丧,因为97%的配置硬件未被使用。知道为什么会这样吗?
答案 0 :(得分:1)
80件商品的尺寸是多少?查看此处的文档:http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html
您可以使用DynamoDB中的查询和扫描操作进行检索 单个请求中表中的多个连续项。同 在这些操作中,DynamoDB使用已处理的累积大小 用于计算预配置吞吐量的项目。例如,如果是查询 操作检索100个每个1 KB的项目,即读取容量 计算不是(100×4 KB)= 100个读取容量单位,就好像那些 使用GetItem或BatchGetItem单独检索项目。 相反,总数将只有25个读取容量单位((100 * 1024) bytes)= 100 KB,然后除以4 KB)。
因此,如果您的商品很小,那就可以解释为什么Scan不会消耗尽可能多的容量。另外,注意Scan最终使用一致的读取,这会消耗一半的读取容量单位。