我有一个包含 Until 活动的 Azure 数据工厂 v2 管道。
在 - 的里面until是一个复制活动 - 如果失败,则会记录错误,与本文中完全相同,并且我希望循环继续。
Azure 数据工厂管道“发生故障”
虽然内部复制活动的错误已得到处理,但until活动被认为失败是因为内部活动失败了。
![ADF Screenshots](https://i.stack.imgur.com/FphIkm.png)
有没有办法配置直到活动在内部活动失败时继续?
Solution
将错误处理步骤放入其自己的管道中,并从 ExecutePipeline 活动运行它们。您需要传入外部管道所需的所有参数。
然后,您可以使用 ExecutePipeline 的完成(蓝色)依赖项(而不是成功(绿色)),以便外部管道继续运行,尽管存在内部错误。
请注意,如果您希望外部知道内部发生了什么,那么当前无法将数据从 ExecutePipeline 传递到其父级(https://feedback.azure.com/forums/270578-data-factory/suggestions/38690032-add-ability-to-customize-output-fields-from-execut).
要解决此问题,请使用 ExecutePipeline 内的 sp 活动将数据写入 SQL 表,并使用管道运行 ID 进行标识。这可以在管道内引用@pipeline().RunId
.
然后,在管道之外,您可以在 SQL 表中进行查找,使用运行 ID 来获取正确的行。
健康警告:
由于某些奇怪的原因,ExecutePipeline 的输出不是作为 JSON 对象返回,而是作为字符串返回。因此,如果您尝试选择这样的输出属性@activity('ExecutePipelineActivityName').output.something
然后你会得到这个错误:
“String”类型的值不支持属性选择
因此,要从外部获取 ExecutePipeine 的运行 ID,您需要:@json(activity('ExecutePipelineActivityName').output).pipelineRunId
我在微软的任何地方的文档中都找不到这个记录,因此在这里发布了血淋淋的细节。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)