如何在ADF中从已执行的管线中获取输出参数? [英] How to get output parameter from Executed Pipeline in ADF?

查看:16
本文介绍了如何在ADF中从已执行的管线中获取输出参数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个将提供输出的Databricks管道,但目前,我需要从已执行的管道运行Databricks,当我试图运行它时,我的Databricks输出没有显示在已执行的管道上?此管道无法显示输出吗?

这就是我的Databricks输出结果。

[![在此处输入图片描述][1]][1]

这是我的已执行管道。

如何从已执行的管道中获取runOutput结果?

推荐答案

您可以使用Azure rest API来查询活动运行,因此您可以执行API调用来获取您感兴趣的管道的最后一次管道运行。然后使用这些详细信息调用另一个REST API,以获取您感兴趣的管道RunID的活动输出。

这种方法的好处是不需要将输出写入文件或数据库,而是您可以只在Azure监视器日志中查找ADF的活动输出。它还可用于从完全不同的数据工厂获取活动输出。

您实际上可以参考这篇文章来展示如何使用Azure REST API for ADF来查询管道和活动运行:

Azure data factory and Log analytics

此处重要的部分是主体和操作数:

以下是有关如何使用查询管道API的Microsoft文档:

https://docs.microsoft.com/en-us/rest/api/datafactory/pipeline-runs/query-by-factory

以下是有关如何查询Activity API的Microsoft文档:

https://docs.microsoft.com/en-us/rest/api/datafactory/pipeline-runs/query-by-factory

因此,您可以做的是找到使用管道API运行的子管道的管道运行ID,然后使用该ID使用活动API查询该管道中的特定活动执行。

实例:

父管道:

子管道:

使用Web请求获取子管道的最后一次管道运行:

URL:

https://management.azure.com/subscriptions/@{pipeline().parameters.SubscriptionId}/resourceGroups/@{pipeline().parameters.ResourceGroupName}/providers/Microsoft.DataFactory/factories/@{pipeline().DataFactory}/queryPipelineRuns?api-version=2018-06-01

正文:

{
  "lastUpdatedAfter": "2018-06-16T00:36:44.3345758Z",
  "lastUpdatedBefore": "@{utcnow()}",
  "filters": [
    {
      "operand": "PipelineName",
      "operator": "Equals",
      "values": [
        "@{pipeline().parameters.PipelineName}"
      ]
    },
    {
      "operand": "LatestOnly",
      "operator": "Equals",
      "values": [
        true
      ]
    }
  ]
}

使用上一次Web调用中的管道详细信息获取活动输出:

URL:

https://management.azure.com/subscriptions/@{pipeline().parameters.SubscriptionId}/resourceGroups/@{pipeline().parameters.ResourceGroupName}/providers/Microsoft.DataFactory/factories/@{pipeline().DataFactory}/pipelineruns/@{activity('Get Last ChildPipeline Run Details').output.value[0].runId}/queryActivityruns?api-version=2018-06-01

正文:

{
  "lastUpdatedAfter": "2018-06-16T00:36:44.3345758Z",
  "lastUpdatedBefore": "@{utcnow()}",
  "filters": [
    {
      "operand": "ActivityName",
      "operator": "Equals",
      "values": [
        "@{pipeline().parameters.ActivityName}"
      ]
    }
  ]
}

以下是使用上述流程在父管道中的成功输出:

这篇关于如何在ADF中从已执行的管线中获取输出参数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆