gpt4 book ai didi

azure-cosmosdb - Cosmos DB 中的更改数据捕获

转载 作者:行者123 更新时间:2023-12-03 08:49:35 25 4
gpt4 key购买 nike

我想通过 azure 函数或其他方式使用计划作业捕获 Cosmos DB(JSON 文档)中更改的数据,而不影响数据库的在线性能,因为 Web 应用程序/移动应用程序正在使用以下方式读取数据并将数据写入 Cosmos DB 中API 调用。我想要数据用于离线 ETL 和分析目的,就像 Oracle 提供离线重做日志文件的方式一样。

最佳答案

有两个选项可以通过更改源来执行此操作,具体取决于是否需要作为批处理作业运行还是可以流式传输。

如果不需要批量处理,可以使用内置的 Azure Functions 触发器。这是最简单的方法,但只能从头开始或从 Azure Function 启动时开始。可以从这里开始,https://learn.microsoft.com/en-us/azure/cosmos-db/change-feed-functions

如果确实需要进行批处理处理,您将需要使用更改源处理器库并配置开始时间以返回到批处理运行的最后一个日期时间。从这里开始,https://learn.microsoft.com/en-us/azure/cosmos-db/how-to-configure-change-feed-start-time 。示例代码在这里,https://github.com/Azure/azure-cosmos-dotnet-v3/blob/master/Microsoft.Azure.Cosmos.Samples/Usage/ChangeFeed/Program.cs

了解 Cosmos 中 Change Feed 的一些注意事项。首先,它不是真正的操作日志。它只会显示集合中项目的最新版本(更新),不会显示删除,您需要创建一个“isDeleted”属性并将“软删除”设置为 true。其次,Change Feed 不会告诉您发生了什么变化,而只会告诉您某些内容发生了变化。第三,Change Feed 确实会在它正在监视的集合上消耗少量的 RU/s,并且当您发出读取以提取数据时也会消耗少量的 RU/s。但与写入的 RU/s 相比,这个值很小。您需要监控 RU 消耗,以确保留有足够的空间。

关于azure-cosmosdb - Cosmos DB 中的更改数据捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59811269/

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