【发布时间】:2022-01-08 02:32:53
【问题描述】:
我正在构建一个中间件,在其中我从一个系统中获取所有未解决的问题,并在不同的系统中为此类问题创建票证。然后当第一个系统中的问题关闭时,中间件将关闭另一个系统中的票证。
我每天都会收到来自第一个系统的未解决问题列表。我将它们放入 CosmosDB (SQL) 表中,对它们施以魔法以在另一个系统中打开票证,然后将它们复制到历史存储中。 为了能够关闭工单,我想清空 CosmosDB 表,以便可以关闭下一个每日加载中的任何工单非。
我尝试设置一个 DataFlow,其中我使用 CosmosDB 表作为源,然后不选择任何内容并使用相同的 CosmosDB 表作为接收器,但使用“重建”选项。这样桌子应该被完全清空。这会产生一个奇怪的错误(“作业失败,原因是:Conversion from StructType(StructField(data,StructType(StructField(id,StringType,true),.....)几行)。
在数据工厂中清理 CosmosDB 表的最佳方法是什么?
【问题讨论】:
-
这个问题似乎相当广泛,因为从 Cosmos DB 容器中删除内容的潜在方法有很多(仅供参考,Cosmos DB 没有表)。这也有点不清楚,因为您根本没有提供任何具体的示例数据。 Cosmos DB 具有内置的 TTL 来老化旧数据,这可能对您有帮助,也可能没有帮助。您始终可以手动删除具有特定状态的文档(例如,标记为
closed的工单)。也不需要数据工厂来做这件事(我什至不确定数据工厂是否适合这样的事情)。 -
@DavidMakogon 因为它是自动化过程的一部分,所以数据工厂是当前的首选工具。如果您知道可以从数据工厂触发的更好的选项,那么我会全力以赴。 TTL 不是一个选项,因为我们希望选择或多或少地运行批处理。手动删除也不是一种选择,因为它是一个自动化过程。特定状态不是一个选项,因为我只收到未结票。这个问题真的不是那么广泛。示例数据不会为问题添加信息。这一切都归结为:我可以使用数据工厂清除容器中的所有数据吗?
标签: azure azure-cosmosdb azure-data-factory azure-data-factory-2 azure-cosmosdb-sqlapi