我需要在 java 中对 dynamo db 执行批量更新。通过更新我的意思是我有一个项目的主键并且想要更新该项目的单个属性。我首先尝试通过batchGetItem 获取项目,对其进行修改并执行batchWriteItem。甚至 dynamoDb 映射器的 batchSave 也不提供更新。我可以使用这种方法,但是有没有一种方法可以直接对项目执行批处理更新,而无需从数据库中获取整个项目?
1 回答
0
根据亚马逊文档,这是不可能的,他们要求使用UpdateItem
:https ://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchWriteItem.html
因此,您可以使用您的方法或UpdateItem
在应用程序中并行执行,最后,正如 Amazon 文档所述,使用 BatchWriteItem 的好处主要是延迟成本和复杂性:
BatchWriteItem 并行执行指定的 put 和 delete 操作,为您提供线程池方法的强大功能,而无需在应用程序中引入复杂性。
您的方法可能更快(延迟更少)但成本更高(需要读取和写入整个项目)。同时UpdateItem
,根据您使用的技术,实施方法可能更复杂。
于 2020-03-28T16:34:44.493 回答