azure - 如何识别在 Debug模式下工作但在触发时不工作的 Azure 数据工厂管道上的问题?

标签 azure azure-data-factory

在 Azure 数据工厂上,我有一个使用复制数据事件的参数化管道,源是 OData,接收器是本地 SQL 服务器。它们是通过自托管集成运行时执行的。

直到上周左右,管道一直在成功运行,能够从 32 个表动态复制数据。现在,我在为其中两个表运行相同的管道时遇到问题。它们在 Debug模式下执行时可以成功工作,但在通过触发器执行时则无法成功,即使参数相同。 这些管道上没有要发布的更改,我知道触发器执行已发布的管道版本,而调试则执行未保存的更改。

表 1 存在问题

管道完全失败,错误与在接收器中找不到表有关。错误信息:

Operation on target Load Data failed: Failure happened on 'Source' side. ErrorCode=UserErrorODataRequestNotSucceeded,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Requesting response from path [redacted] and query failed with status code NotFound and message The resource you are looking for has been removed, had its name changed, or is temporarily unavailable..,Source=Microsoft.DataTransfer.Runtime.ODataConnector,'

同样,当通过调试执行时,使用相同的参数,它会像平常一样工作。我尝试从复制数据事件中删除参数化并为此表创建一个单独的管道,但结果是相同的,除非在调试中执行,否则无法在接收器中找到该表。

表 2 存在问题

管道成功执行,但仅加载 20 列中的 16 列的数据。源和接收器中的所有列名称和类型都相同。在 Debug模式下执行时,将填充所有 20 列。复制数据事件不提供有关这些未填充列的任何详细信息,如下所示。

Copy activity details

我希望收到警告或告诉我有关不兼容列的信息,但什么也找不到。这个特定问题似乎是在加载 32 个表中只有 1 个表时发生的(至少我知道)。

直到上周我才遇到这些问题。为什么这些问题仅发生在某些表上,并且在 Debug模式下也不会发生?如何进一步解决这些问题?

最佳答案

我已经向 Microsoft 提出了支持票证并找出了问题 - 主分支的更改没有正确发布,它们已“损坏”。数据工厂正在使用旧的元数据/代码,并且从未按其应有的方式更新,这就是为什么它在 Debug模式(当前/新元数据)下工作,但不能在触发器(已发布的元数据/代码)下工作。

通过使用 OData 重新创建链接服务连接并将其替换到正在使用它的数据集中,该问题已得到解决。

关于azure - 如何识别在 Debug模式下工作但在触发时不工作的 Azure 数据工厂管道上的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61759760/

相关文章:

azure - Azure Log Analytics 查询结果的组电子邮件

Azure 数字孪生 - 更新 Azure 数字孪生的最佳工具是什么

azure - 如何在 Azure 数据工厂中正确展平分号数组?

Azure 数据工厂 - 写入 blob 存储时间歇性出现 400 错误

azure - 如何删除 JSON 字符串数组中的转义字符?

azure - 如何使用Azure APIM将API请求中的参数传递到后端URL?

azure - 在 Azure 中创建 kubernetes 集群时出现错误 ControlPlaneProvisioningInternalError

c# - Azure Cosmos DB - 检查项目是否不存在,而不向 Application Insights 抛出错误

Azure数据工厂: Handling inner failure in until/for activity

Azure 数据工厂选择属性 "status": "Succeeded" from previous activity