gpt4 book ai didi

amazon-web-services - PutItem 到 DynamoDB 很慢

转载 作者:IT王子 更新时间:2023-10-29 01:41:00 26 4
gpt4 key购买 nike

我有一个 EC2 实例,它打开一个 json 文件,读取每一行并对两个表执行 putItem 操作。

在没有putItem操作的情况下,Golang解析一个67k行的文件大约需要3秒。

通过 putItem 操作,它每 5 分钟处理 10k 个项目。放入 dynamodb 的操作没有受到限制。 WCU 和 RCU 已相应设置。那么 putItem 操作是否有原因阻碍了代码?

我假设 Golang 正在等待每个 put 操作成功?

仍然很不确定,如果有人使用 golang 对 dynamodb 进行了批量插入,那么如果您阐明了如何规避这种情况,将会很有帮助。

最佳答案

之所以缓慢,是因为每个插入都必须执行到 dynamo 的完整 HTTP 往返。

5 分钟内 10k 个项目大约是每个项目 30 毫秒,这是 HTTP 行程的预期值。

您可以使用批量更新,docs here

在文档中,您有 BatchWriteItemInput,它采用 map[string][]*WriteRequest

type BatchWriteItemInput struct {
// ... trimmed

RequestItems map[string][]*WriteRequest

...
}

WriteRequest 模型有点奇怪,因为它同时用于DeletePut 操作,忽略DeleteRequest *删除请求字段。

重要的是要注意批处理操作有一些限制:

  • 您不能在批量请求中多次更改同一项目
  • 一批中的商品必须多于 2 件且少于 25 件
  • 每个项目不能大于 400KB,总批处理不能大于 16MB。

关于amazon-web-services - PutItem 到 DynamoDB 很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50339541/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com