use*_*026 2 azure-cosmosdb azure-cosmosdb-sqlapi
我希望通过 azure 函数或其他方式使用计划作业捕获 Cosmos DB(JSON 文档)中更改的数据,而不影响数据库的在线性能,因为 Web 应用程序/移动应用程序正在使用 API 调用将数据读取和写入到 Cosmos DB 中。我想要用于离线 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 消耗以确保留有足够的空间。
| 归档时间: |
|
| 查看次数: |
1921 次 |
| 最近记录: |