DynamoDB 的大规模更新

DynamoDB 的大规模更新

我一次从提供商 API 接收多个 json 项目更新,但无法控制可以接收多少个项目,有时可能只有 1 个项目,有时则有 100k 个项目。

这些项目被放入 SQS 队列。然后我使用一些代码处理它以将其插入 dynamoDB(主要是更新,因为项目已经存在但发生了变化)

然后将这些项目插入到 DynamoDB 中,你可以想象,当它一次获得 100k 个项目时,配置的容量是不够的,它需要自动扩展,这会浪费我的时间和金钱。

您是否知道是否有某种架构机制可以用于平滑交易,这样我就不需要一次处理 100K 个项目,从而节省自动缩放和更多配置容量的费用?

答案1

您可以使用按需模式,这样就无需自动扩展(或在突发事件后自动缩减)。如果项目小于 1kb,则写入 100,000 个项目的成本约为 0.12 美元。

按需服务是针对您所描述的突发性工作负载而设计的。

答案2

使用您的 SQS 队列作为缓冲区,不要尝试一次写入所有项目。

设置批处理大小和最大并发数,以确保不会通过平滑较长时间内的流量来使 DynamoDB 表过载。您可以尝试使用事件源映射的其他配置,直到获得正确的结果。

相关内容