DynamoDB - DynamoDBMapper查询并获取整个结果集

时间:2016-04-05 16:02:49

标签: java amazon-web-services amazon-dynamodb

我正在使用哈希键查询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

1 个答案:

答案 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。