【问题标题】:Azure Data Factory v2: Activity execute pipeline outputAzure 数据工厂 v2:活动执行管道输出
【发布时间】:2019-04-24 01:04:07
【问题描述】:

有没有办法在“执行管道”活动中引用已执行管道的输出?

即:主管道依次执行 2 个管道。第一个管道生成一个自己创建的 run_id,需要将其作为参数转发给第二个管道。

我已经阅读了文档并检查了主管道记录了第一个管道的输出,但看起来这不是直接可能的?

到目前为止,我们只使用了 2 个没有主管道的管道,但我们希望更多地重用逻辑。目前我们有 1 个管道调用下一个管道并转发 run_id。

【问题讨论】:

    标签: azure azure-data-factory-2


    【解决方案1】:

    ExecutePipline 目前无法将任何内容从其内部传递到其输出。您只能获取 runID 或名称。

    由于某些奇怪的原因,ExecutePipeline 的输出不是作为 JSON 对象返回,而是作为字符串返回。因此,如果您尝试选择像 @activity('ExecutePipelineActivityName').output.something 这样的输出属性,则会收到此错误:

    “字符串”类型的值不支持属性选择

    我发现我必须使用以下方法来获取运行 ID: @json(activity('ExecutePipelineActivityName').output).pipelineRunId

    【讨论】:

      【解决方案2】:

      执行管道活动只是另一个活动,其输出可以被其他活动捕获。 https://docs.microsoft.com/en-us/azure/data-factory/control-flow-execute-pipeline-activity#type-properties

      如果你想使用之前执行的管道的runId,它看起来像这样:

      @activity('ExecutePipelineActivityName').output.pipeline.runId
      

      希望这有帮助!

      【讨论】:

      • 感谢马丁的帮助。鉴于我们知道“pipelineRunId”,我能否要求您更详细地指定什么是 DataFactory 运算符/活动,我们可以使用它来恢复管道的输出。谢谢
      • 你可以在任何你需要的地方使用它,这取决于你想要对输出做什么。你想用它做什么?
      • 我想调用一个包含 CopyActivity 任务的管道。基本上,我想从父管道中检索子管道的输出,利用“pipelineRunId”来读取 CopyActivity 的输出并检查诸如 rowsRead、rowsCopied 和 rowsSkipped 之类的元数据信息。谢谢
      • @pippobaudos,您的问题得到解答了吗?我遇到了同样的问题。我想看一个如何使用活动输出的示例。
      猜你喜欢
      • 2018-10-02
      • 1970-01-01
      • 2018-10-03
      • 1970-01-01
      • 2021-12-25
      • 1970-01-01
      • 2020-03-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多