使用batchGetItem与在AWS DynamoDB中使用getItem进行迭代有什么不同之处吗?

时间:2016-01-14 09:59:22

标签: amazon-web-services amazon-dynamodb

来自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,在响应时间或其他方面是否有任何优势?

1 个答案:

答案 0 :(得分:1)

是的,响应时间。 BatchGetItem为GetItem检索并行和连续的项目。但是,还有一些可能相关的其他考虑因素:

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