通过这种改变,我能获得更好的动力学吞吐量吗?

时间:2018-05-02 06:33:41

标签: amazon-web-services amazon-dynamodb

现在我有移动应用程序命中无服务器的aws lambda端点,写入1条记录。有时,移动应用程序反复写入其中一些记录(50-300)。 1记录的样子如下所示:

    {
      "name": "John Doe",
      "miscValue": "1f2ea989-5b33-49e5-a88a-19c7594afd9d",
      "ratio": "1.7777777777777777",
      "new": true,
      "timestamp": "1524156952325"
    }

现在,如果我改变它,那么不是每次lambda调用写1条记录,而是每次调用可以写多条记录,然后做更少的调用,这会导致较低的dynamodb吞吐量吗?

示例场景:

该应用可以写1 record per second for 100 seconds vs 10 records per second for 10 seconds

AWS文档声明:

  

一个写入容量单位表示项目每秒写入一次   至1 KB的大小。如果您需要编写大于1的项目   KB,DynamoDB需要消耗额外的写入容量单位。该   所需的写入容量单位总数取决于项目   大小

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ProvisionedThroughput.html

这让我相信,由于我的记录大小远低于1kb,如果我一次做多个记录的改变,我会看到dynamodb吞吐量利用率的显着改善。这是对的吗?

1 个答案:

答案 0 :(得分:2)

  

一个写入容量单位表示项目每秒写入一次最大1 KB

如果您在表格上设置1个写入单位,则无论您如何操作,您都可以每秒写入1个项目(除了突发容量https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-partition-key-design.html#bp-partition-key-throughput-bursting)。如果项目大于1 KB,则需要多于1个写入单位(ceil(大小/ 1KB))才能写入。如果项目小于1 KB,则无论如何需要1个写入单位。