如何在Azure Data Factory管道上识别在调试模式下工作但在触发时不工作的问题?

问题描述 投票:0回答:1

在 Azure Data Factory 上,我有一个使用复制数据活动的参数化流水线,源是 OData 和Sink是一个on-prem SQL服务器。它们正在用一个自带的集成运行时来执行。

直到上周左右,该管道还能成功运行,能够从32张表中动态复制数据。现在,我在为其中的2张表运行相同的管道时遇到了问题。当在调试模式下执行时,它们能成功工作,但通过触发器执行时却不能,即使参数是相同的。在这些管道上没有任何变化要发布。我知道触发器会执行已发布的管道版本,而debug会执行未保存的更改。

表1的问题

管道完全失败,错误与汇中找不到表有关。错误信息。

对目标负载数据的操作失败。失败发生在 "源 "端。 ErrorCode=UserErrorODataRequestNotSucessfed,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=从路径[redacted]请求响应,查询失败,状态码为NotFound,消息为。你要找的资源已被删除,名称已更改,或暂时不可用。...,Source=Microsoft.DataTransfer.Runtime.ODataConnector,'。

同样,当通过debug执行时,使用相同的参数,它照常工作。我试过从复制数据活动中删除参数,并为这个表创建一个单独的流水线,但结果还是一样,除非在调试中执行,否则无法在汇中找到表。

表2的问题

管道成功执行,但它只加载了20列中16列的数据。所有的列名和类型在源和汇中都是一样的。当在调试模式下执行时,所有20列都被填充。复制数据活动没有提供任何关于那些未填充列的细节,如下图所示。

Copy activity details

我本以为会有一个警告或什么东西告诉我不兼容的列,但什么也找不到。这个特定的问题似乎只发生在正在加载的32个表中的1个表上(至少我知道)。

我直到上周才出现这些问题。为什么这些问题只发生在某些表上,而且在调试模式下也没有发生?我如何进一步排除这些问题?

azure azure-data-factory azure-data-factory-2
1个回答
1
投票

我已经向微软开了一个支持票,并找出了问题所在--主分支的更改没有被正确发布,它们被 "损坏 "了。数据工厂使用的是旧的元数据代码,从来没有更新过,这就是为什么它在调试模式下可以工作(currentnew metadata),但在触发器(发布的元数据代码)下不能工作。

通过重新创建与OData的链接服务连接,并在使用该连接的数据集中进行替换,该问题得到了解决。

© www.soinside.com 2019 - 2024. All rights reserved.