当前位置:  开发笔记 > 编程语言 > 正文

DynamoDb - 如何进行批量更新?

如何解决《DynamoDb-如何进行批量更新?》经验,为你挑选了1个好方法。

来自关系背景,我习惯于写下这样的东西:

UPDATE Table Set X = 1 Where Y = 2

然而,在类似Dynamodb的db中,这样的操作似乎很难实现.假设我已经对Y = 2的项目进行了查询.

我看到它的方式,提供API有两个选项:

做很多很多个人update请求,或者

做一个batch write和写入所有数据的回,应用了更新.

这两种方法看起来都很糟糕,性能也很差.

我错过了一些明显的东西吗?或者非关系型数据库不是为了按照这种规模处理"更新"而设计的 - 如果是这样的话,我可以在不增加性能成本的情况下实现类似的东西吗?



1> Mike Dinescu..:

不,你没有遗漏任何明显的东西.不幸的是,这些是您使用DynamoDB的唯一选项,但有一点需要注意,BatchWrite一次只能批量提交25个更新操作,因此您仍然可能需要发出多个BatchWrite请求.

BatchWrite更方便DynamoDB API提供的便利,可以帮助您节省网络流量,减少25个请求的开销,但不会节省太多.

BatchWrite API也比单独的Update和Put项API灵活一点,因此在某些情况下,最好自己处理并发并只使用底层操作.

当然,最好的方案是,如果您可以构建解决方案,以便不需要对DynamoDB表执行大量更新.写入是昂贵的,如果您发现自己经常需要更新表的大部分,可能会有一个可以采用的替代设计.

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有