Ошибка ProvisionedThroughputExceededException при попытке записи 100 000 записей - PullRequest
0 голосов
/ 18 октября 2019

Я обнаружил The level of configured provisioned throughput for the table was exceeded. Consider increasing your provisioning level with the UpdateTable API следующее сообщение об ошибке, когда я пытаюсь записать 100 000 записей в Dynamodb. Я использовал BatchWriteItem для вставки данных в базу данных Dynamodb на 1000 записей после 1000.

И, когда я пытаюсь увеличить Maximum provisioned capacity как для чтения, так и для записи, это показывает, что емкость не должна превышать 40000 для каждого изображения. Пожалуйста, дайте мне знать, как решить эту проблему, спасибо.

Ответы [ 2 ]

1 голос
/ 19 октября 2019

Я думаю, что лучший способ действий - это вставить преднамеренную задержку в ваш цикл (цикл, который «[пытается] записать 100 000 записей в Dynamodb»). Если после каждого BatchWriteItem ваша программа / поток будет спать в течение нескольких секунд, вы будете распределять свои записи в течение более длительного периода времени, эффективно уменьшая (в секунду) емкость, необходимую для их обработки.

В качестве альтернативы, вы также можетепопробуйте использовать по требованию . Обратите внимание, что в этом режиме становится сложнее прогнозировать ваши финансовые затраты. Однако, если эта операция записи выполняется один раз, вы можете временно переключиться в этот режим.

0 голосов
/ 19 октября 2019

Я нашел решение, что нам нужно добавить опции maxRetries и retryDelayOptions при настройке DynamoDB, например:

let dynamodb = new AWS.DynamoDB({
    apiVersion: '2012-08-10',
    region: 'ap-southeast-1,
    maxRetries: 13,
    retryDelayOptions: {
        base: 200
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...