Amazon dynamodb 在DynamoDB中更新多个记录

Amazon dynamodb 在DynamoDB中更新多个记录,amazon-dynamodb,batch-processing,Amazon Dynamodb,Batch Processing,如何在一次查询中更新DynamoDB中的多个记录? 我有一个csv文件作为基于csv文件的输入,我必须更新数据库中的多个记录(只有一个属性)。 是否有任何API可用于此? 或者这可以通过批处理(Spring batch)来实现?DynamoDB没有直接的batchUpdateAPI。它确实有batch get item和batch write itemAPI 但是,您可以使用batchWriteItemAPI来更新该项 1) 使用下面的BatchWriteItemSpec类构造请求 2) 使用

如何在一次查询中更新DynamoDB中的多个记录? 我有一个csv文件作为基于csv文件的输入,我必须更新数据库中的多个记录(只有一个属性)。 是否有任何API可用于此?
或者这可以通过批处理(Spring batch)来实现?

DynamoDB没有直接的
batchUpdate
API。它确实有
batch get item
batch write item
API

但是,您可以使用
batchWriteItem
API来更新该项

1) 使用下面的
BatchWriteItemSpec
类构造请求

2) 使用下面的
TableWriteItems
类构造需要更新的项

3) 使用下面的
addItemToPut
方法(或
withItemsToPut
)添加新属性

如果项(即分区键)不可用,则
batchWriteItem
API将创建一个新项。如果分区键可用,它将更新现有项。您的用例属于这个类别

代码示例:-

文件-是表名

文件名-是分区键

TransactionNew-添加新属性(也可以更新现有属性值)

DynamoDB dynamoDB = new DynamoDB(dynamoDBClient);

            Item itemUpdate1 = new Item();

            itemUpdate1.withKeyComponent("fileName", "file1")
                    .withString("transcriptionnew", "new value");

            Item itemUpdate2 = new Item();

            itemUpdate2.withKeyComponent("fileName", "file2")
                    .withString("transcriptionnew", "new value");

            TableWriteItems tableWriteItems = new TableWriteItems("files").withItemsToPut(itemUpdate1, itemUpdate2);

            BatchWriteItemSpec batchWriteItemSpec = new BatchWriteItemSpec().withTableWriteItems(tableWriteItems);

            BatchWriteItemOutcome batchWriteItemOutCome = dynamoDB.batchWriteItem(batchWriteItemSpec);

            if (batchWriteItemOutCome.getUnprocessedItems().isEmpty()) {
                //All items are processed
                return true;
            }