Azure Synapse 管道 - ForEach 中的 ForEach 不起作用

Azure Synapse Pipeline - ForEach in ForEach not working

提问人:olf 提问时间:11/13/2023 更新时间:11/14/2023 访问量:31

问:

在 Synapse 中,我有一个用于编排工作的管道。

我做的第一件事是查找我在工作中的不同优先事项。然后,我为我的每个优先级创建一个 ForEach。

在该 ForEach 循环中,我创建另一个查找,该查找具有该特定优先级的任务,并使用另一个 ForEach 循环执行每个任务。

如果我直接在同一管道中执行此操作,则会出现错误:

Error
{
    "code": "BadRequest",
    "message": null,
    "target": "pipeline//runid/ab56b3c8-244f-4e8a-b5cd-2cfff775e16c",
    "details": null,
    "error": null
}

但是,如果我将内部查找任务和 ForEach 循环复制到另一个管道并将优先级添加为参数,它就像一个魅力!

那么:是否可以在 Synapse 的 ForEach 循环中有一个 ForEach 循环?

pipeline azure-synapse

评论


答:

2赞 Joel Cochran 11/14/2023 #1

管道(ADF 和 Synapse)中的嵌套逻辑操作非常有限。例如,不能将 ForEachUntil 放在 ForEach 中,也不能将任何逻辑操作放在 IfSwitch 中。

解决此问题的方法是调用另一个管道 (Execute Pipeline) 并传递任何相关参数。然后,该管道将被设计为在单个迭代中执行操作。这将创建父子管道关系。根据你的方案,你可能需要通过指定“等待完成”来按顺序运行这些操作。