微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用排序键的DynamoDB版本控制

如何解决使用排序键的DynamoDB版本控制

有人使用https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-sort-keys.html中所述的排序键来实现版本控制吗?

尝试使用打字稿来实现此目的,以使用项目的版本构建数据库。是否可以使用updateItem进行此操作,还是需要执行get + put操作?

任何帮助我入门或帮助的示例都非常感谢!

解决方法

使用排序键进行版本控制的概念涉及使用相同的分区键和不同的排序键创建一个全新的项目。

DynamoDB提供了一些操作,这些操作允许以原子方式更新对象内的值,这种用例非常适合当您拥有计数器或数量之类的东西而想要减少/增加它而不必读取其值时第一。 -Docs here

如上所述,在您要实现的情况下,您实际上是在创建一个新对象。 DynamoDB本身没有版本控制的任何概念,该模式的作用是巧妙地利用分区键和排序键之间的关系以及PK可以具有多个关联的SK的事实,以关联多个同一张桌子。

要回答您的问题,如果唯一的事实来源(或数据存储)是DynamoDB,则是的,您的客户端将必须首先查询表以了解哪个是要更新的项目的最新版本,然后插入新版本。 如果您在其他地方记录此信息,而仅使用DynamoDB来存储这些版本,那么不行,一次放置操作就足够了,但前提是您可以在其他地方检索此信息。

就示例而言,AWS开发工具包的官方文档始终是一个好的开始,就您而言,我假设您要使用可以找到here的Javascript。

在非常高的级别上,您必须执行以下操作:

  • 创建一个AWS.DynamoDB()客户。
  • 使用dynamodb.query()方法执行查询,并指定要更新的项目的PK。
  • 浏览上一个查询返回的项目(行),找到版本号较大的SK。
  • 使用dynamodb.putItem()方法放置新项目,并将版本号递增的项目传递为SK并具有相同的PK。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。