使用 CosmosDB 更改源检测非时间戳数据中的删除

Using CosmosDB change feeds to detect deletions in non-timestamped data

我有一个包含大约 30,000 条记录的数据源。当我轮询数据源时,我会一次性收到所有记录。没有时间戳指示上次更新数据源的时间。

我想使用 Azure 将数据转换为发布到服务总线的一系列添加、更新和删除指令。

我可以 post 将每条记录发送到 CosmosDB 并使用更改提要生成添加和更新指令,然后将其发布到服务总线。但这不会处理删除。在删除的情况下,CosmosDB 会有记录,但传入的数据源不会,因此不会创建删除指令。

在这种情况下,是否也可以使用 CosmosDB 更改源来生成删除?如果没有,是否有另一种“Azure”方式通过轮询非时间戳数据源来生成添加、更新和删除指令?非常感谢任何帮助!谢谢

今天完成此操作的一种方法是在您的记录中插入墓碑标记 "delete": true

然后,当此项目出现在 Change Feed 中时,您可以检查此 属性,如果存在,将其触发到 ServiceBus,然后从托管 Change Feed 的进程调用 DeleteItemAsync() 是否有 VM , Azure 函数等