Параллельное сканирование Dynamodb с использованием API Table.scan в Java

Буду признателен за помощь всем, кто знаком с работой DynamoDB. Мне нужно выполнить сканирование на большой таблице DynamoDB. Я знаю, что операция сканирования DynamoDBClient ограничена размером возвращаемых данных в 1 МБ. Применимо ли такое же ограничение к операции Table.scan? Дело в том, что операция Table.scan возвращает вывод типа "ItemCollection<ScanOutcome>", в то время как сканирование DynamoDBClient возвращает вывод ScanResult, и мне не ясно, работают ли эти операции аналогичным образом или нет.

Я проверил этот пример: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ScanJavaDocumentAPI.html, но он не содержит никаких подсказок об использовании последнего возвращенного ключа.

Мои вопросы: Нужно ли делать циклические вызовы до тех пор, пока lastreturnedkey не станет нулевым, если я использую Table.scan? Если да, как мне получить последний ключ? Если нет, как я могу обеспечить нумерацию страниц? Любые ссылки на примеры кода приветствуются. Я потратил некоторое время на поиски примеров, но большинство из них используют либо DynamoDBClient, либо DynamoDBMapper, хотя мне нужно вместо этого использовать объекты таблиц и индексов.

Спасибо!

1 ответ

Если вы перебираете вывод Table.scan()SDK сделает пагинацию за вас.

Другие вопросы по тегам