gpt4 book ai didi

python - dynamodb 更新非规范化数据并保持一致性

转载 作者:搜寻专家 更新时间:2023-10-30 23:27:31 26 4
gpt4 key购买 nike

我将 dynamodb 与 python API 结合使用,并对我的数据进行非规范化处理,以保持快速读取。我的想法是我担心在更新数据时保持一致性说我有一个用户表,每个用户都有一个 key 和一个名称,每个购买表都有一个 key 和一个包含买方 key (用户)和的数据买家的名字。

我想更新用户名并使用原子操作更新他的所有购买,如 firebase 中可用(多路径更新)解释 here

我该怎么做?

谢谢

最佳答案

这是一个很好的文档 dynamodb transaction .

以下是博文的几个亮点。

  1. Dynamodb 支持跨多个表的事务功能,您也可以在每次插入时有前置条件(即仅当 prev_snapshot=1223232 时才插入订单表,这将确保您只修改最后读取的数据。)

  2. 有 2 种类型的获取支持 TransactGetItems 和 Eventual/Strongly consistent GetItem。在 TransactGetItems 中,如果交易正在进行,请求将被拒绝。而在其他 2 种情况下,根据您的一致性要求返回最后提交的数据。

  3. 如果其他线程在没有事务的情况下写入表,事务不是锁,如果在事务完成之前写入成功,事务将抛出异常。

  4. 在单个区域表上启用事务不需要额外的步骤/权限。

  5. 使用事务功能时,每次读取和写入的成本都会翻倍。

这里是不支持的功能

  1. 全局表中的事务功能。但这可以通过请求粘性来避免,在我看来应该不是大问题。

关于python - dynamodb 更新非规范化数据并保持一致性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54637310/

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