gpt4 book ai didi

amazon-dynamodb - 更新 DynamoDB 中的多条记录

转载 作者:行者123 更新时间:2023-12-04 15:58:36 24 4
gpt4 key购买 nike

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

最佳答案

DynamoDB 没有直接的 batchUpdate API。它确实有 批量获取项目批量写入项目 API。

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

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

BatchWriteItemSpec

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

TableWriteItems

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

addItemToPut

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

代码示例:-

files - 是表名

fileName - 是分区键

transcriptionnew - 添加新属性(或者也可以更新现有属性值)

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;
}

关于amazon-dynamodb - 更新 DynamoDB 中的多条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43468257/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com