Amazon DynamoDB:对表配置吞吐量的程序化更改是否有限制?

时间:2013-02-07 16:25:12

标签: python amazon-dynamodb throughput

我正在处理大量文件,如下所示:我首先将它们全部下载到EC2实例,然后运行一个脚本,按顺序处理每个文件并将其索引到DynamoDDB表中(表中的每个项目对应于文件中的单行)。然后我下载下一批文件等。

现在我通过AWS GUI控制台调整配置的吞吐量,在下载阶段和索引阶段,它最终都是相同的。显然,这不是最理想的,因为在下载时我根本不与数据库通信,因此在此阶段我所需的写入吞吐量基本上为0.

所以我想要做的是以编程方式调整预设吞吐量的方式,当我开始编制索引时,然后当我停止编制索引并开始下载时停止。

在单个请求中我可以增加写入t / p的数量有限制吗?例如,我可以将其从5更改为120吗?如果不是,我如何计算请求的数量和将t / p从值X调整到值Y所需的时间(其中X <&lt;&lt; Y)?我是否必须进行类似的计算以降低t / p?

我正在使用Python boto。

谢谢

1 个答案:

答案 0 :(得分:0)

当放大时你只能加倍写入量,所以如果你是5,你可以达到10,然后等待20-30秒让它开始,然后再加倍到20,依此类推。您可以根据需要缩小范围。

根据AWS FAQ

  

问:我可以使用单个请求更改配置的吞吐量有多少限制?   是。 Amazon DynamoDB允许您使用单个UpdateTable API调用将预配置的吞吐量级别更改最多100%。如果您希望将吞吐量提高100%以上,可以再次调用UpdateTable。

例如,如果您的表具有1,000个单位的写入容量,则无法使用单个API调用将表更新为3,000,因为这超过了单个UpdateTable操作的最大允许更改。要将吞吐量从1,000个单位的写入容量增加到3,000个,只需调用UpdateTable将吞吐量首先加倍到2,000,然后再次调用UpdateTable达到3,000次写入/秒。