более 100 позиций через batchGetItem в DynamoDB - PullRequest
1 голос
/ 25 января 2020

Если вы запрашиваете более 100 элементов, BatchGetItem возвращает исключение ValidationException с сообщением «Слишком много элементов запрошено для вызова BatchGetItem». Есть ли способ обработать более 100 элементов в DynamoDB через batchGetItems.

1 Ответ

4 голосов
/ 25 января 2020

При одном запросе BatchGetItem максимальное количество элементов для получения равно 100, как указано в AWS:

За одну операцию можно получить до 16 МБ данных, который может содержать до 100 элементов.

[…]

Важно

Если вы запрашиваете более 100 элементов, BatchGetItem возвращает исключение ValidationException с сообщением «Слишком много элементов запрошено для вызова BatchGetItem».

Также нет нумерации страниц, как для таких действий, как Query. Что вы можете сделать, так это самостоятельно выполнить нумерацию страниц, чтобы сделать один BatchGetItem запрос на 100 элементов. Если вы go пошли по этому маршруту, вам также следует убедиться, что вы правильно обработали UnprocessedKeys.

Хотя неясно, каков ваш вариант использования для извлечения более 100 элементов одновременно из DynamoDB, ваша проблема может быть признаком плохого дизайна схемы DynamoDB. В зависимости от вашего варианта использования лучшим вариантом может быть изменение схемы и / или использование действия, подобного Query.

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