更改Cosmos DB中的数据捕获

问题描述 投票:0回答:1

我想使用计划作业通过天蓝色功能或其他方式在Cosmos DB(JSON文档)中捕获更改的数据,而又不影响DB的在线性能,因为Web应用程序/移动应用程序正在使用API​​读取和写入数据到Cosmos DB中呼叫。我希望数据用于脱机ETL和分析目的,就像oracle提供脱机重做日志文件的方式一样。

azure-cosmosdb azure-cosmosdb-sqlapi
1个回答
0
投票

根据更改馈送是否需要作为批处理作业运行或可以流式传输,有两个选项可通过更改Feed进行。

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

如果确实确实需要进行批处理,则您将需要使用Change Feed Processor库并配置开始时间以返回到批处理运行的最后日期。在这里开始https://docs.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中的变更Feed的警告。首先,这不是真正的操作日志。它只会显示集合中某个项目的最新版本(更新),而不会显示删除,您需要创建一个“ isDeleted”属性并将“软删除”设置为true。其次,Change Feed不会告诉您发生了什么变化,而只是告诉您某些变化。第三,Change Feed确实会在它正在监视的集合上消耗少量的RU / s,并且在发出读取以提取数据时也会再次消耗。但这与用于写入的RU / s相比很小。您将需要监视RU消耗,以确保留有足够的净空。

© www.soinside.com 2019 - 2024. All rights reserved.