无论创建了多少Blob,如何只执行一次管道?(Azure数据工厂)



我创建了一个管道,每次创建blob时都会由触发器执行,问题是在某些情况下,进程需要同时上传多个文件,当这种情况发生时,管道执行的次数与blob的数量一样多,这会导致数据错误。我试图在主管道中共同创建一个复制数据活动,以便复制创建的每个blob,但由于此管道位于第一个管道内,因此它也会执行多次。

您可以根据属性Filter by last modified筛选复制活动源,在属性中您可以指定UTC的开始时间和结束时间。

您可以尝试使用复制数据工具,根据LastModifiedDate增量复制新的和更改的文件

或者

根据您的场景,这里只需提及开始时间。

  1. 这个开始时间不过是上次执行触发的管道运行的时间!您可以使用REST API调用Trigger Runs-Query By Factory来获取Triggered管道运行的详细信息
  2. 现在,您可以根据在存储中创建文件的频率,选择查询在最近x小时内执行的运行,或者选择在最后一天是否安全
  3. 接下来,从这个结果中只收集triggerRunTimestamp并附加到数组变量
  4. 使用函数查找最大运行时间或上次运行时间。将此时间设置为复制活动源筛选器的StartTime(UTC(,如开头所述

如果这是可行的,我可以旋转一个示例管道。

为什么要将事件触发器映射到创建和上传所有文件的原始路径源?您是否可以在末尾创建一个带有伪文件的伪blob路径,以便在上传所有文件后进行最终触发以克服此问题?

注意:这就是我们的管理方式:(但不幸的是,生成了一个冗余文件

最新更新