gpt4 book ai didi

amazon-web-services - 从dynamodb获取多个项目的最便宜的方式

转载 作者:行者123 更新时间:2023-12-02 04:17:14 36 4
gpt4 key购买 nike

我看到来自 AWS 的“BatchGetItem”API,可用于从 dynamodb 检索多个项目。但是 n 个项目消耗的容量是 n 个单位,即使它们只有 10 个字节长。有没有更便宜的方法来取回这些元素?我看到了“查询”API,但它可能不支持键的 ORing,甚至不支持 IN 运算符。

最佳答案

从 DynamoDB 中获取大量小项目的成本最低的方法是查询

BatchGetItems 的成本与 GetItem 调用的等效数量相同。只是延迟较低,但如果您有大量项目要进入不同的分区,并且您有一种可以很好地处理并行性的语言,那么在执行大量并行操作时实际上会获得更好的性能 GetItem 调用。

重新组织数据的一种方法是将所有小项目存储在同一分区键下,并使用 Query 获取该分区内的所有项目。您必须注意每秒写入的限制,但如果您不经常添加更多项目并且您更担心读取,这应该会很好用。

查询中,DynamoDB 根据返回的数据大小收费,与返回的项目数无关。但这似乎是这些经济学应用的唯一地方。

根据我对 DynamoDB 的了解,这是有道理的。在 BatchGetItems 调用中,项目很容易来自不同的分区(甚至不同的表),因此效率不高 — 每个项目都必须单独查找并从 DynamoDB 网络上的分区中获取。如果批处理中的所有键都来自同一个分区并且在范围键上是连续的,那是一个幸运的巧合,但 DynamoDB 无法利用它。

另一方面,在查询中,DynamoDB 非常清楚它只会直接与一个分区对话,并在该分区内进行顺序读取,因此调用要简单得多并且更便宜,节省下来的钱让利给客户。

关于amazon-web-services - 从dynamodb获取多个项目的最便宜的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32917452/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com