Nee*_*pta 2 amazon-web-services amazon-dynamodb
我看到来自 AWS 的“BatchGetItem”API,可用于从 dynamodb 检索多个项目。但是,即使 n 个项目只有 10 个字节长,消耗的容量也是 n 个单位。有没有更便宜的方法来取回这些物品?我看到“查询”API,但它可能不支持键的 ORing,甚至不支持 IN 运算符。
从 DynamoDB 获取大量小项目的最便宜的方法是Query.
BatchGetItems同等通话次数的费用相同GetItem。只是延迟较低,但是如果您有大量的项目需要进入不同的分区,并且您有一种能够很好地并行处理的语言,那么您实际上会在进行大量并行调用时获得更好的性能GetItem。
重新组织数据的一种方法是将所有小项目存储在同一分区键下,并使用 aQuery获取该分区内的所有项目。您必须注意每秒写入的限制,但如果您不经常添加更多项目并且您更担心读取,那么这应该会很好用。
在 a 中Query,DynamoDB 根据返回的数据大小收费,而不考虑返回的项目数。但这似乎是这些经济学唯一适用的地方。
根据我对 DynamoDB 的了解,这是有道理的。在调用中BatchGetItems,项目很容易来自不同的分区(甚至不同的表),因此效率不高 \xe2\x80\x94 每个项目必须单独查找并从 DynamoDB 网络上的分区获取。如果批次中的所有键都来自同一分区并且在范围键上连续,那么这是一个幸运的巧合,但 DynamoDB 无法利用它。
另一方面Query,DynamoDB 非常清楚它只会直接与一个分区通信,并在该分区内进行顺序读取,因此该调用更加简单且便宜,并将节省的成本传递给客户。
| 归档时间: |
|
| 查看次数: |
3142 次 |
| 最近记录: |