DynamoDB读写

时间:2012-12-22 00:27:05

标签: amazon-dynamodb

什么构成了DynamoDB中的实际读取?

是读取表格中的每一行还是返回了什么数据?

这就是为什么扫描如此昂贵的原因 - 您读取整个表格并为每个读取的表格行收费吗?

您可以将ElasticCache(Memcached)放在DynamoDB前面以降低成本吗?

最后,您是否因为没有结果的查询而付费?

1 个答案:

答案 0 :(得分:2)

请参阅此链接:http://aws.amazon.com/dynamodb/faqs/

1 Write = 1每秒写入一个大小为1Kb的项目。

1读取= 2每秒读取一个大小为1Kb的项目,如果您需要完全一致的结果,则每秒读取1次。

  

例如,如果您的项目是512字节,则需要读取100   从您的表中每秒的项目,然后您需要提供100个单位   读容量。

     

如果您的项目大小超过1KB,那么您应该计算   您需要的读取容量和写入容量的单位数。   例如,如果您的商品是1.5KB而您想要100   读/秒,然后你需要提供100(每秒读取)x   2(1.5KB四舍五入到最接近的整数)= 200单位的读数   容量。

     

请注意,确定了所需的读取容量单位数   按每秒读取的项目数,而不是API的数量   调用。例如,如果您需要每秒读取500个项目   表,如果您的物品是1KB或更少,那么您需要500个单位   读容量。如果你做500个单独的GetItem并不重要   调用或50个BatchGetItem调用,每个调用返回10个项目。

以上适用于所有常用方法,GET,BATCH X& QUERY。 SCAN略有不同,他们没有准确记录他们如何计算使用情况,但他们确实提供了以下内容:

  

Scan API将遍历整个数据集并应用   过滤条件到每一行。因为只能扫描1MB的数据   在一次,你可能需要做多次往返(使用   继续令牌)完成扫描。此外,使用此API可能   消耗大部分配置的读取吞吐量。因此,这种方法   具有有限的缩放特性,我们不建议您   将它作为应用程序常规行为的一部分。

所以直接回答你的问题:计算除了SCAN之外在所有情况下返回的数据,其中没有任何关于它们如何收费的明确指示。不产生任何结果的查询不会花费任何成本。

你绝对可以在Dynamo面前设置一个缓存系统,如果你想保持读取,绝对建议你研究一下。

希望有所帮助!