我正在处理大量文件,如下所示:我首先将它们全部下载到EC2实例,然后运行一个脚本,按顺序处理每个文件并将其索引到DynamoDDB表中(表中的每个项目对应于文件中的单行)。然后我下载下一批文件等。
现在我通过AWS GUI控制台调整配置的吞吐量,在下载阶段和索引阶段,它最终都是相同的。显然,这不是最理想的,因为在下载时我根本不与数据库通信,因此在此阶段我所需的写入吞吐量基本上为0.
所以我想要做的是以编程方式调整预设吞吐量的方式,当我开始编制索引时,然后当我停止编制索引并开始下载时停止。
在单个请求中我可以增加写入t / p的数量有限制吗?例如,我可以将其从5更改为120吗?如果不是,我如何计算请求的数量和将t / p从值X调整到值Y所需的时间(其中X <&lt;&lt; Y)?我是否必须进行类似的计算以降低t / p?
我正在使用Python boto。
谢谢
答案 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次写入/秒。