java 成批查询GSI,而不是单个请求

9lowa7mx  于 2023-03-06  发布在  Java
关注(0)|答案(2)|浏览(104)

我在一个csv中有接近200Keventids。我在一个循环中阅读它们中的每一个,并使用GSI查询那些eventidsGSI位于主表的属性eventid上。是否有一种方法可以在single batch or single request to dynamodb中发送这些事件,从而避免multiple请求?我正在使用DynamoDBEnhancedAsyncClient查询GSI

rkue9o1l

rkue9o1l1#

到目前为止,您在文档中发现了哪些内容,表明这可能是或可能不是现有功能?

c3frrgcw

c3frrgcw2#

您是否考虑过使用BatchGetItem API
比如:

List<ReadBatch> readBatches = new ArrayList<>();
    for (String eventId : eventIdList) {
        readBatches.add(ReadBatch.builder(Event.class)
                .mappedTableResource(eventsTable)
                .addGetItem(GetItemEnhancedRequest.builder()
                        .consistentRead(true)
                        .key(Key.builder().partitionValue(eventId).build())
                        .build())
                .build());
    }
BatchGetItemEnhancedRequest<Event> batchGetRequest = BatchGetItemEnhancedRequest.builder()
            .readBatches(readBatches)
            .build();

相关问题