【问题标题】:Is there any difference advantage in using batchGetItem vs iterating over getItem in AWS DynamoDB?在 AWS DynamoDB 中使用 batchGetItem 与迭代 getItem 有什么不同的优势吗?
【发布时间】:2016-01-14 09:59:22
【问题描述】:

来自http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ErrorHandling.html#BatchOperations
这些批处理 API 被实现为其他非批处理 DynamoDB 操作的包装器。 BatchGetItem 为批次中的每个项目调用 GetItem。

并且来自: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#CapacityUnitCalculations :
对于 BatchGetItem,批处理中的每个项目都是单独读取的,因此 DynamoDB 首先将每个项目的大小向上舍入到下一个 4 KB,然后计算总大小。结果不一定与所有项目的总大小相同。例如,如果 BatchGetItem 读取一个 1.5 KB 的项目和一个 6.5 KB 的项目,DynamoDB 将计算大小为 12 KB (4 KB + 8 KB),而不是 8 KB (1.5 KB + 6.5 KB)。

那么使用 batchGetItem api 与迭代列表并调用 getItem api 在响应时间或其他方面有什么优势吗?

【问题讨论】:

    标签: amazon-web-services amazon-dynamodb


    【解决方案1】:

    是的,响应时间。 BatchGetItem 为 GetItem 并行和顺序检索项目。但是,还有其他一些可能相关的注意事项:

    1. 您需要确保您的表设置有相当数量的读取单元;
    2. 检查预期结果 - 您可能无法获得批量请求中的所有项目,因此您可能需要再次请求。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2016-05-20
      • 2022-01-21
      • 1970-01-01
      • 1970-01-01
      • 2019-11-15
      • 2015-07-20
      • 1970-01-01
      • 2020-02-10
      • 2013-01-24
      相关资源
      最近更新 更多