现在,我的移动应用程序访问了一个无服务器的aws lambdaendpoint,写了1条记录。有时,移动应用程序会反复写入这些记录中的几条(50-300条)。下面是1条记录的示例:
{
"name": "John Doe",
"miscValue": "1f2ea989-5b33-49e5-a88a-19c7594afd9d",
"ratio": "1.7777777777777777",
"new": true,
"timestamp": "1524156952325"
}
现在,如果我改变它,而不是每次lambda调用写入1条记录,它可以每次调用写入多条记录,然后进行更少的调用,这会导致更低的Dynamodb吞吐量吗?
示例场景:
该应用程序可以在 100 秒内每秒写入 1
条记录,而每秒可以写入 10 条记录,持续 10 秒
。
AWS文档指出:
一个写入容量单位表示对于最大1 KB的项目每秒写入一次。如果您需要写入大于1 KB的项目,DynamoDB将需要消耗额外的写入容量单位。所需的写入容量单位总数取决于项目大小。
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ProvisionedThroughput.html
这让我相信,由于我的记录大小远小于1kb,如果我一次做多个记录,我会看到dynedb吞吐量利用率有显著提高。这是正确的吗?
一个写容量单位表示大小不超过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(size/1KB))来写入它。如果项目小于1 KB,你无论如何都需要1个写入单位。