我正在使用哈希键查询DynamoDB表。表中的每个记录由散列键和范围键唯一标识
DynamoDBMapper mapper;
....
MyClass myClass = new MyClass();
myClass.setHashKey(hashKey);
DynamoDBQueryExpression<MyClass> queryExpression = new DynamoDBQueryExpression<MyClass>()
.withHashKeyValues(myClass);
PaginatedQueryList<MyClass> entries = mapper.query(MyClass.class, queryExpression);
//Work with the elements of entries
当结果集超过1MB时,如何检索其余部分。
我找不到任何方法来获取文档中提到的LastEvaluatedKey
。
答案 0 :(得分:0)
用于Dynamodb Mapper的AWS开发工具包可为您处理分页。它在内部查询db,并且当您需要1MB以上的数据时,它将再次查询它并为您获取数据。 如果您希望一次性获得完整列表,则可以使用大小或将分页结果复制到列表中等操作,这将要求映射器获取完整结果。 简而言之,您不必担心LastEvaluatedKey及其为您处理的问题。
示例, PaginatedQueryList resultPaginatedList = dynamoDBMapper.query(getModelClass(), queryExpression);
List<T> queryList = new LinkedList<>(resultPaginatedList); //--- Line1
logger.info("Total elements found: " + queryList.size()); //--- Line2
第1行和第2行都描述了映射器将获取完整结果(通过查询SDK处理的多次)的操作,而不仅仅是1MB。