Параллельное сканирование 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 сделает пагинацию за вас.