Mat*_*hew 4 amazon-web-services amazon-dynamodb
我是 DynamoDB 和 NoSQL 的新手。我设置了 2 张桌子,而且它们非常小。每项 < 80 项。一个当前为 60KB,另一个为 1.5KB。根据外部馈送,在定时的基础上进行两次延迟写入。API 网关通过 lambda 进行读取。
我已经可以看到我在 DynamoDB 设置和使用中犯了错误:我正在使用扫描,我相信我可以使用查询,并且我有一个 GSI,可以通过更好的主键和本地二级索引设置来更好地处理它,尽管这对我来说仍然是一个谜。
我每天都会额外支付 0.89 美元,高于免费套餐,“超出免费套餐的读取容量单位每小时”0.15 美元,“超出免费套餐的每小时写入容量单位”0.74 美元。
在更改我的设置之前,我想了解为什么我会产生额外的成本以及在哪里 - 我正在查看成本浏览器,但我看不到产生成本的临界点。
感谢任何指点
DynamoDB 免费套餐包括:
单个写入容量单元用于写入1kb以下的单个项目。如果该项目大于 1kb(如示例中的 1.5kb),那么它将使用额外的容量单位。您的 60kb 项目将使用 60 个写入容量单位来进行此写入。
单个读取容量单元用于读取4kb以下的单个项目。适用与写入容量相同的规则。
通过扫描,读取容量单位使用量将始终是整个 DynamoDB 表的总和。根据您的示例,1 60KB 项目是 15 个读取容量单位,如果另外 79 个 1.5kb 项目,则每个项目还有 79 个容量单位。因此单次扫描总共 94 个。
使用所有这些容量单位进行扫描的原因是,过滤器实际上是在从每个分区检索数据后应用的。
这是查询效率更高的地方,项目的检索是在分区上执行的。项目将被过滤,然后消耗返回项目的总容量。
如果您想尝试降低成本,请确保 DynamoDB 读取和写入容量单位在创建期间设置为 25,或者自动扩展不能超过 25。
| 归档时间: |
|
| 查看次数: |
1319 次 |
| 最近记录: |