Отправка нескольких сотен тысяч объектов JSON в базу данных с помощью API-запросов. - PullRequest
0 голосов
/ 29 апреля 2018

Я пытаюсь отправить несколько сотен тысяч объектов JSON в базу данных с помощью API-вызовов. Проблема в том, что когда я пытаюсь отправить все эти объекты JSON в базу данных с отдельными вызовами для каждого объекта, я получаю много ошибок HTTP, в основном 400.

У меня вопрос: есть ли лучший способ отправить все объекты JSON в базу данных? Могу ли я отправить их все сразу? Ждать между вызовами API?

Нет, если это важно, но я пытаюсь отправить данные в DynamoDB через API-интерфейс AWS.

Ответы [ 2 ]

0 голосов
/ 30 апреля 2018

В документации здесь указано, что ошибка 400 может быть исключением ThrottlingException The request was denied due to request throttling.

Если это так, у вас есть три варианта.

1) Ограничьте количество отдельных вызовов POST, которые отправляются в API в секунду из вашего кода через систему очередей.

2) Как рекомендовано в предыдущем ответе, вы можете использовать пакетную функциональность .

3) Увеличить вместимость стола. Это может быть достигнуто через консоль, выбрав таблицу, перейдя на вкладку емкости и увеличив Write capacity units

0 голосов
/ 29 апреля 2018

Вы можете писать элементы в партиях . См:

Вы также можете предоставить больше возможностей в DynamoDB. Этот вопрос о регулировании в DynamoDB может быть полезен. Это может быть причиной того, что вы получаете ошибки HTTP 400 (было бы полезно получить более подробную информацию о полученном сообщении об ошибке HTTP).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...