【发布时间】:2020-06-04 03:13:15
【问题描述】:
我正在尝试从 DynamoDB 表中获取项目以将它们放入 csv 文件中。以下是代码:
ArrayList<String> ids = new ArrayList<String>();
ScanResult result = null;
do{
ScanRequest req = new ScanRequest();
req.setTableName("table");
req.withLimit(10);
if(result != null){
req.setExclusiveStartKey(result.getLastEvaluatedKey());
}
AmazonDynamoDBClient client = new AmazonDynamoDBClient(awsCreds);
result = client.scan(req);
List<Map<String, AttributeValue>> rows = result.getItems();
for(Map<String, AttributeValue> map : rows){
try{
AttributeValue v = map.get("prod_number");
String id = v.getS();
ids.add(id);
} catch (NumberFormatException e){
System.out.println(e.getMessage());
}
}
} while(result.getLastEvaluatedKey() != null);
System.out.println("Result size: " + ids.size());
我想知道为什么'req.withLimit(10)' 对结果数没有影响。查询仍会尝试获取所有记录。
【问题讨论】:
-
我想我明白了,限制是分页,而不是获取的结果数。
标签: amazon-dynamodb aws-java-sdk