我一直在努力了解AWS DynamoDB文档中WCU的含义。我从AWS文档中了解到的是
如果您的应用程序需要编写每个项目所在的1000个项目 大小0.2KB然后你需要提供1000 WCU(即0.2 / 1 = 0.2,其中 最接近1KB,所以1000项(写)* 1KB()= 1000WCU)
如果我的上述理解是正确的,那么我想知道那些需要每秒向DynamoDB写入数百万条记录的应用程序,这些应用程序是否需要提供数百万个WCU?
感谢您能否澄清我。
答案 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。