【问题标题】:Azure Data Factory use result of a Lookup for iterating in a ForEachAzure 数据工厂使用查找的结果在 ForEach 中进行迭代
【发布时间】:2022-07-06 15:02:55
【问题描述】:

我有一个查找结果,它给出了一个包含 200 个结果的列。然后我需要使用另一个管道中的每一行,使用 ForEach。 我试过@activity(Lookup1).output.value,但它似乎不起作用。 有没有办法做到这一点?

【问题讨论】:

  • 您能分享一个您的数据示例吗?我不太明白你想对这些值做什么,你想将每个值发送到另一个管道吗?你能分享你的管道吗?

标签: azure-pipelines azure-data-factory


【解决方案1】:

如果您想将 Lookup 活动的输出与 ForEach 循环一起使用,其中 Lookup 活动和 Foreach 活动都存在于同一管道中,那么 @activity('Lookup1').output.value 将起作用。但是,如果 Lookup 活动在一个管道中,并且您想将此结果传递给另一个管道中的 ForEach 活动,则需要采用不同的方法。

查看以下演示(两个活动在同一管道中):

  • 以下Lookup 活动在我的表中选择单列的 10 行。

  • ForEach 活动中,我为项目指定了 @activity('Lookup1').output.value 的值。

  • 在foreach 中,我使用script 活动将值插入到表中。管道成功运行并将值插入到我的目标表中。

当 Lookup 在一个管道中并且在另一个管道中时:

  • 假设lookup_pipeline 管道具有查找活动(选择表列的 10 行),execute_pipeline 管道具有 foreach 活动。
  • 在 foreach 活动中,创建一个名为 valuesobject 类型的参数。

  • 现在返回lookup_pipeline 并创建一个execute pipeline 活动。选择调用的管道作为execute_pipeline。执行此操作后,参数 values 将出现在下方,您可以在此处指定其值 (@activity('Lookup1').output.value)。

  • 现在打开execute_pipeline 中的foreach 活动并将项目的值指定为@pipeline().parameters.values

  • 我在 foreach 活动中使用了相同的脚本活动。现在运行lookup_pipeline,它成功运行并给出了输出。

注意:

  • 如果您只想将行值传递给另一个管道 (pipeline2) 而不是整个查找活动输出对象,请按照上述方法中使用的方法。
  • 您可以在同一管道(管道1)中使用lookupforeach,在foreach活动中创建execute pipeline活动并将行值作为@item()传递(另一个管道'pipeline2'必须有参数类型以获取从 'pipeline1' 传递的行值)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-31
    • 1970-01-01
    • 2021-12-17
    • 2022-11-11
    • 2018-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多