【问题标题】:Amazon DynamoDDB: Are there limits on programmatic changes to a table provisioned throughput?Amazon DynamoDB:对表预置吞吐量的编程更改是否有限制?
【发布时间】:2013-02-07 16:25:12
【问题描述】:

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

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

所以我想做的是在我开始索引时以编程方式将预置吞吐量调整为向上,然后在我停止索引并开始下载时向下调整。

我可以在单个请求中增加多少写入 t/p 是否有任何限制?例如,我可以将它从 5 更改为 120 吗?如果不是,我如何计算请求数量和将 t/p 从值 X 调整到值 Y(其中 X

我正在使用 Python boto。

谢谢

【问题讨论】:

    标签: python amazon-dynamodb throughput


    【解决方案1】:

    当扩大规模时,您只能将写入配置翻倍,因此,如果您是 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 写入/秒。

    【讨论】:

    • 如果我不等待就进行多次增加请求会发生什么?
    • 您会收到来自 API 的错误。我刚刚使用 AWS 常见问题解答中的链接和引用更新了答案。
    • 更新:扩大到 2 倍的限制不再存在。我能够在一次 API 调用中将吞吐量从 10 扩展到 5000。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多