【问题标题】:Sending several hundred thousand JSON objects to a database via API post requests通过 API 发布请求将数十万个 JSON 对象发送到数据库
【发布时间】:2018-04-29 17:37:07
【问题描述】:

我正在尝试通过 API 发布调用将数十万个 JSON 对象发送到数据库。问题是当我尝试将所有这些 JSON 对象发送到数据库时,对每个对象进行单独调用时,我会收到很多 HTTP 错误,大部分是 400。

我的问题是,有没有更好的方法将所有 JSON 对象发送到数据库?我可以一次全部发送吗?在 API 调用之间等待?

如果它很重要,我不这样做,但我正在尝试通过 AWS API 将数据发送到 DynamoDB。

【问题讨论】:

  • 一个错误400 可能由各种问题引起,因为它是一个通用代码(客户端错误)。我认为需要更多信息——你的 API 是什么样的?你要发送什么对象?您 DB 期望什么对象(模式)?等

标签: javascript json node.js api amazon-dynamodb


【解决方案1】:

您可以分批编写项目。见:

您还可以在 DynamoDB 中预置更多容量。 DynamoDB 中的 This question about throttling 可能很有用。这可能是您收到 HTTP 400 错误的原因(有关您收到的 HTTP 错误消息的更多详细信息会很有用)。

【讨论】:

  • 非常感谢!这让我朝着正确的方向前进。
【解决方案2】:

文档 here 指出错误 400 可能是 ThrottlingException The request was denied due to request throttling.

如果是这种情况,您有三个选择。

1) 限制每秒从您的代码通过排队系统发送到 API 的单个 POST 调用的数量。

2) 按照上一个答案的建议,您可以使用batch functionality

3) 增加表的容量。这可以通过控制台选择表格,进入容量选项卡并增加Write capacity units

【讨论】:

  • 非常感谢!我一定会试试这个。
猜你喜欢
  • 2021-10-20
  • 1970-01-01
  • 2013-08-28
  • 2020-01-07
  • 2020-10-07
  • 2020-04-02
  • 2016-11-06
  • 2020-04-25
  • 2016-01-25
相关资源
最近更新 更多