gpt4 book ai didi

azure - 如何从 ADF 中的执行管道获取输出参数?

转载 作者:行者123 更新时间:2023-12-02 22:51:44 24 4
gpt4 key购买 nike

我有一个可以提供输出的 databricks 管道,但目前,我需要从执行管道运行 databricks,当我尝试运行它时,我的 databricks 输出没有显示在执行管道上?该管道无法显示输出吗?

这是我的 Databricks 输出结果。

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

这是我的执行管道。

enter image description here

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

最佳答案

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

此方法的优点是不需要将输出写入文件或数据库,而只需在 ADF 的 Azure Monitor 日志中查找该事件的输出。它还可用于从完全不同的数据工厂获取事件输出。

您实际上可以引用这篇文章来演示如何使用 ADF 的 Azure REST API 来查询管道和事件运行:

Azure data factory and Log analytics

这里重要的部分是主体和操作数:

Example Body in API Call

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

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

这里是有关如何查询事件 API 的 Microsoft 文档:

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

因此,您可以做的是找到使用管道 API 运行的子管道的 Pipeline RunID,然后使用它通过 Activity API 查询该管道内的特定事件执行情况。

真实示例:

父管道:

Parent Pipeline

子管道:

Child Pipeline

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

Get Last Pipeline Run

网址:

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 调用中的管道详细信息获取事件输出:

Get Activity Output from Child

网址:

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}"
]
}
]
}

这是使用上面所示的过程在父管道中成功输出的结果:

Final output

关于azure - 如何从 ADF 中的执行管道获取输出参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68252383/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com