java - DynamoDB 中的批量更新

标签 java amazon-dynamodb performbatchupdates

我需要在java中对dynamo db执行批量更新。通过更新我的意思是我有一个项目的主键并且想要更新该项目的单个属性。 我尝试首先通过batchGetItem获取项目,修改它并执行batchWriteItem。即使dynamoDb映射器的batchSave也不提供更新。 我可以使用这种方法,但是有没有一种方法可以直接对项目执行batchUpdate,而无需从数据库获取整个项目?

最佳答案

根据亚马逊文档,这是不可能的,他们要求使用 UpdateItem:https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchWriteItem.html

因此,您可以使用您的方法或在应用程序中执行并行 UpdateItem,最后,如 Amazon 文档所述,使用 BatchWriteItem 的好处主要是延迟成本和复杂性:

BatchWriteItem performs the specified put and delete operations in parallel, giving you the power of the thread pool approach without having to introduce complexity into your application.

您的方法可能更快(延迟更少),但成本更高(需要读取和写入整个项目)。同时 UpdateItem 方法的实现可能会更复杂,具体取决于您使用的技术。

关于java - DynamoDB 中的批量更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60889376/

相关文章:

swift - Realm - 尝试从第 0 部分删除项目 x,在更新崩溃之前该部分仅包含 4 个项目

java - 使用 JavaZOOM BasicPlayer 类播放某些 MP3 时出错

java - 抑制 Shell 脚本中的关键字扩展

amazon-dynamodb - DynamoDB Scan获取nodejs上对象的属性

ios - 如何解决此 CollectionView 崩溃?

swift ,UIKit : How can I diagnose EXC_BAD_INSTRUCTION in UIKit on tableView. PerformBatchUpdates()

java - 如何检查 JPassword 字段是否为空

java - 以这种格式显示 Java 8 Time api "HH:mma"(05 :53PM) and add set Time with only minutes

database-design - 为什么在 dynamodb 中使用多个表被认为是糟糕的表设计?

javascript - 如何按列表中的值查询 DynamoDB 过滤