我创建了一个管道,每次创建 blob 时都会由触发器执行,问题是进程需要同时上传多个文件的情况,当发生这种情况时,管道会执行多次作为 blob 的数量,这会导致数据错误。我尝试在主管道中配置一个复制数据事件,以便复制创建的每个 blob,但由于该管道位于第一个管道内,因此它也会执行多次。
最佳答案
您可以做的是根据属性按上次修改时间过滤
来过滤复制事件源,您可以在其中指定 UTC 格式的开始时间和结束时间。
你可以试试这个Incrementally copy new and changed files based on LastModifiedDate by using the Copy Data tool
或者...
这里根据您的情况,只需提及开始时间。
- 此开始时间只不过是上次执行触发的管道运行的时间!您可以使用 REST API 调用 Trigger Runs - Query By Factory 获取触发的管道运行详细信息.
- 现在,您可以选择查询最近
x
小时内执行的运行,或者根据您在存储中创建文件的频率选择最近一天的安全运行。 - 接下来,从此结果中仅收集
triggerRunTimestamp
并附加到数组变量。 - 使用函数查找最大或上次运行时间。将此时间设置为复制事件源过滤器的 UTC 时间开始时间,如开头所述。
如果这是可行的,我可以旋转一个示例管道。
关于azure - 无论创建了多少个 blob,如何只执行一次管道? (Azure 数据工厂),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70602473/