0
我想對dynamoDB表進行全面掃描。這是我正在使用的代碼:DynamoDB掃描返回不完整的數據
private void fetchItems(AmazonDynamoDBClient client) {
int count = 0;
ScanResult result = null;
ScanRequest req = new ScanRequest();
req.setTableName(this.tableName);
do {
if (result != null) {
req.setExclusiveStartKey(result.getLastEvaluatedKey());
}
result = client.scan(req);
List<Map<String, AttributeValue>> rows = result.getItems();
count += rows.size();
} while(result.getLastEvaluatedKey() != null);
System.out.println("Result size: " + count);
}
}
問題是此函數返回表中的273項的207。我檢查了指標,並沒有限制請求。什麼可能是這個不完整結果的原因?
如果在循環中總結result.getItems()的大小,它是否會生成相同的數字?他們都有屬性「STUDENT_ID」嗎?這是提供問題的確切代碼,還是問題的簡化版本? (如果它是一個簡化版本,你可能已經刪除了這個bug)。作爲一個說明,節流會拋出一個異常,不會給失蹤的結果。 – Krease
此外,您的客戶是否設置爲使用您期望的憑證和區域?您可能在不同地區或賬戶的表格中得到不同的結果,而不是您正在驗證的結果(即:beta vs prod賬戶,或us-east-1 vs us-west-1)。 – Krease
@Chris我編輯了代碼以顯示出現問題的確切代碼。至於憑證的事情,我會在這方面回覆你。 – rohan013