gpt4 book ai didi

c# - 如何识别 Cosmos db 中记录级别的漂移?

转载 作者:行者123 更新时间:2023-12-03 06:34:18 25 4
gpt4 key购买 nike

我是 Cosmos db 的新手,并试图理解更改源的概念。据我了解,更改源有助于跟踪容器记录上的插入/更新。有人可以帮助我解决我想在每条记录上保留历史数据的情况吗?

我想知道是否对 cosmos db 中的记录进行了任何更新,如何保留旧记录的副本?如果对同一条记录进行多次更新,那么是只保留更改的部分记录还是整个记录更好?

代码示例值得赞赏,但不是必需的。概念性解释也有帮助。

最佳答案

这是文档版本控制模式。这是一个简单的概念设计。

这是一个仅附加存储,有两个容器,一个接收所有插入或更新。它仅包含文档的最新版本。第二个容器包含文档的所有版本。当文档插入或更新到第一个容器中时,更改提要会选取该文档并将其复制到具有新/id 值的第二个容器中。

在您的数据模型中包含文档版本属性。每次插入时该值为 1,每次更新时该值都会递增。

这里需要指出的一点是每个文档的 id 值在分区键值中必须是唯一的。为了说明这一点,如果我有一个分区键为 orderId 的订单容器,则该订单的每个版本都将具有具有相同分区键 (orderId) 的不同 id 值。这很有帮助,因此您可以对文档的所有版本进行高效的分区内查询。如果各个版本的分区键值和 id 相同,则当更改源将数据插入第二个容器时,您将遇到异常。

实际上有一些示例内容将通过示例应用程序来说明这一点。但 3-4 周内不会发布。希望我上面描述的内容能够帮助您实现这一目标。实现起来并不困难。

关于c# - 如何识别 Cosmos db 中记录级别的漂移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75033369/

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