当我在AWS控制台中执行此查询时,它会立即返回:

但是在Java代码中,它永远不会完成:
final List<TransactionDetails> tx = dynamoDBMapper //
.scan(TransactionDetails.class, new DynamoDBScanExpression() //
.withConsistentRead(false)
.withLimit(maxRecords) //
.withFilterConditionEntry("time", new Condition().withComparisonOperator(ComparisonOperator.LT)
.withAttributeValueList(new AttributeValue(Long.toString(time)))));
return tx; 发布于 2019-01-14 15:30:05
DynamoDB控制台一次只能显示100个结果。DynamoDB映射器实现扫描操作,以便自动迭代表中的所有项。它将向Dynamo发出扫描整个表所需的尽可能多的请求,如果它被限制,它还将重试。
对于较小的表,扫描通常在几秒钟内完成,但较大的表,特别是如果您没有足够的预配读取容量,可能需要几分钟、几小时或几天。
所以-检查表的大小和配置的容量。扫描将完成,但需要多长时间肯定取决于这两个变量。
https://stackoverflow.com/questions/54168438
复制相似问题