如何从数据工厂中清除 CosmosDB?

How can I clean out a CosmosDB from Data Factory?

我正在构建一个中间件,我从一个系统中获取所有未解决的问题,并在另一个系统中为这些问题创建票证。然后当问题在第一个系统中关闭时,中间件将在另一个系统中关闭工单。

我每天都会收到来自第一个系统的未解决问题列表。我将它们放入 CosmosDB (SQL) table,对它们施展魔法以在其他系统中打开票证,然后将它们复制到历史存储中。 为了能够关闭工单,我想清空 CosmosDB table 以便可以关闭下一个每日负载中 而不是 的任何工单。

我尝试设置一个数据流,其中我使用 CosmosDB table 作为源,然后 select 什么都不用,并使用相同的 CosmosDB table 作为接收器,但使用“重建”选项.这样 table 应该被完全清空。这会产生一个奇怪的错误(“由于以下原因作业失败:从 StructType(StructField(data,StructType(StructField(id,StringType,true),..... 转换打开几行)。

清除数据工厂中的 CosmosDB table 的最佳方法是什么?

据我所知,仅使用 ADF 无法做到这一点。您需要将它与诸如逻辑应用程序、数据块笔记本或 Azure 函数之类的东西结合起来。 您可以查看显示逻辑应用程序方法的 this 文章。在这种方法中,您需要编写一个将删除文档的存储过程。逻辑应用仅触发该存储过程。您也可以使用 azure 函数来执行此操作。

仅添加,使用存储过程删除将花费您 RU/s。使用 TTL 将只使用任何剩余未使用的 RU/s.