从id的字符串数组中获得DynamoDB SDK Java中的所有对象



我想要实现的是从id的字符串数组,从DynamoDB中获得具有这些id的所有项目。我实际上是用一种很懒的方式完成的:

public Note findNote(final String noteID) {
DynamoDbTable<Note> noteTable = getTable();
Key key = Key.builder().partitionValue(noteID).build();
Note result = noteTable.getItem(key);
return result;
}
public ArrayList<Note> findNotes(String[] notes){
ArrayList<Note> notess= new ArrayList<Note>();
for (int i = 0; i < notes.length; i++) {
notess.add(findNote(notes[i]));
}
return notess;
}

但是它的效率很低,做的工作,但对于大数组,我将做尽可能多的查询数组的长度。

有什么方法可以更有效地做到这一点或使用单个查询吗?

谢谢!

您希望batchGetItem()可以在一次调用中检索最多100个。RCU开销是相同的,但是由于网络流量减少,延迟会得到改善。您可以在非常有用的AWS示例库中找到一个示例:

https://github.com/aws-samples/aws-dynamodb-examples/blob/master/DynamoDB-SDK-Examples/java/WorkingWithItems/BatchGetItem.java

最新更新