WCU的数量是否等于在DynamoDB中写入的项目数?

时间:2017-12-19 05:04:00

标签: amazon-web-services amazon-dynamodb

我一直在努力了解AWS DynamoDB文档中WCU的含义。我从AWS文档中了解到的是

  

如果您的应用程序需要编写每个项目所在的1000个项目   大小0.2KB然后你需要提供1000 WCU(即0.2 / 1 = 0.2,其中   最接近1KB,所以1000项(写)* 1KB()= 1000WCU)

如果我的上述理解是正确的,那么我想知道那些需要每秒向DynamoDB写入数百万条记录的应用程序,这些应用程序是否需要提供数百万个WCU?

感谢您能否澄清我。

1 个答案:

答案 0 :(得分:1)

我过去曾使用DynamoDB(并且经验地为我的应用程序扩展了RCU和WCU)并且根据AWS文档: -

  

一个写入容量单位表示项目每秒写入一次   至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。