用于DynamoDB batchWrite调用的EC2主机类型。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用于DynamoDB batchWrite调用的EC2主机类型。相关的知识,希望对你有一定的参考价值。

我有一个需求,需要将一个excel表批量上传至DynamoDB表,最大行数为20万行。批量上传的网站使用频率会比较低,所以我们可以假设一次只处理1-2次批量上传。在后端,我使用Apache POI API将excel表解析成DynamoDB项目。

因为我们最多只能发送25个项目。batchWriteItem 调用,目前的延迟大约是15分钟(900秒)才能完全上传所有20万个项目。因此,我打算实现多线程来执行多个? batchWriteItem API的并行调用。你能帮助我了解哪些EC2主机类型最适合为此目的的多线程。

任何参考资料都会非常有帮助。

答案

通常情况下,使用具有多个CPU的实例类型会有助于多线程。

然而,你所描述的行为是在网络上而不是在CPU上等待。因此,你描述的操作很可能没有受到CPU利用率的严重影响。

回答你的问题的最好方法是建议你: 1. 实验不同的实例类型 以找到最适合你的应用需求组合的那一个。

  • 选择一个实例系列(如m5),并尝试一些不同的尺寸。
  • 将其与另一个系列(如c5)进行比较,以确定改进的性能是否值得付出额外的成本。
  • 监视应用程序以寻找瓶颈,这可能是RAM、CPU、网络或磁盘访问。

请注意,较小的实例具有较少的网络带宽,因此您可能需要选择较大的实例类型,以避免在网络带宽上被节流。这可能会导致多余的CPU没有被充分利用。

以上是关于用于DynamoDB batchWrite调用的EC2主机类型。的主要内容,如果未能解决你的问题,请参考以下文章

DynamoDB - JAVA - 具有低级API的BatchWrite

如何在 documentclient.batchWrite() 中使用复合主键?

将自动缩放策略应用于 DynamoDB 表时出现 ObjectNotFoundException

用于 Apache Hadoop 的 emr-dynamodb-connector

DynamoDB 用于不断发展的应用程序

用于 DynamoDB 查询的 Python 代码适用于 v3.6,但不适用于 python 2.7