【问题标题】:Number of WCU equal to number of items to write in DynamoDB?WCU 的数量等于要在 DynamoDB 中写入的项目数?
【发布时间】:2017-12-19 05:04:00
【问题描述】:
我一直在努力理解 AWS DynamoDB 文档中 WCU 的含义。我从 AWS 文档中了解到的是
如果您的应用程序需要编写 1000 个项目,其中每个项目是
大小为 0.2KB 那么您需要提供 1000 个 WCU(即 0.2/1 = 0.2
最接近 1KB,所以 1000 个项目(写入)* 1KB() = 1000WCU)
如果我的上述理解是正确的,那么我想知道那些需要每秒将数百万条记录写入 DynamoDB 的应用程序,这些应用程序是否需要预置数百万个 WCU?
如果你能澄清我,不胜感激。
【问题讨论】:
标签:
amazon-web-services
amazon-dynamodb
【解决方案1】:
我过去曾使用过 DynamoDB(并且根据 AWS 文档体验过为我的应用程序扩展 RCU 和 WCU):-
一个写入容量单位表示每秒一次写入一个项目
大小为 1 KB。如果你需要写一个大于 1 的项目
KB,DynamoDB 将需要消耗额外的写入容量单位。这
所需的写入容量单位总数取决于项目
大小。
这意味着,如果您编写一个大小为 4.5 KB 的文档,那么它将消耗 5 个 WCU,DyanamoDB 将其四舍五入到下一个整数。
还有你的理解
这里每个项目的大小为 0.2KB,那么您需要提供 1000 个 WCU
(即 0.2/1 = 0.2 这使得最接近 1KB,所以 1000 个项目(要写入)*
1KB() = 1000WCU)。
是正确的。
要保存 WCU,您需要设计系统以使您的文档大小始终接近四舍五入。
注意 :- 为避免与 DynamoDB 相关的大量成本,如果您有大量读取,您可以在 dynamoDB 之上使用缓存,这也是他们建议的,我们也实施了。(如果您的应用程序写得很重,比这种方法不起作用,你应该考虑一些其他的选择,比如 Elasticsearch 等)。
根据http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GuidelinesForTables.html doc,见下文
缓存解决方案可以缓解流行的倾斜读取活动
项目。此外,由于它减少了读取活动的数量
相对于桌子,缓存可以帮助降低您的总体成本
使用 DynamoDB。