在Azure数据工厂上,我有一个参数化的管道,它使用复制数据活动,源是OData,接收器是本地SQL服务器。它们是通过自托管集成运行时执行的。
直到上周左右,管道一直在成功工作,能够从32个表中动态复制数据。现在,我在为其中2个表运行相同的管道时遇到问题。它们在调试模式下执行时成功,但在通过触发器执行时无法成功,即使参数相同。这些管道上没有要发布的更改,我知道触发器执行发布的管道版本,而调试器执行未保存的更改。
表1的问题
管道完全失败,错误与在接收器中找不到表有关。错误消息:
对目标加载数据的操作失败:“源”端发生故障。ErrorCode=UserErrorODataRequestNotSucceeded,“Type =Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=正在从路径[编辑]请求响应,查询失败,状态代码为NotFound,消息您正在查找的资源已被移除、名称已更改或暂时不可用。.,Source=Microsoft.DataTransfer. Common.ODataConnector,”
同样,当通过debug执行时,使用相同的参数,它像往常一样工作。我已经尝试从复制数据活动中删除参数化,并为此表创建一个单独的管道,但结果是一样的,除非在debug中执行,否则无法在接收器中找到表。
表2的问题
管道成功执行,但它只加载了20列中的16列的数据。源和接收器中的所有列名和类型都相同。在调试模式下执行时,将填充所有20列。复制数据活动不提供有关未填充列的任何详细信息,如下所示。
的数据
我希望有一个警告或一些东西告诉我不兼容的列,但什么也找不到。这个特定的问题似乎发生在32个表中只有一个表正在加载(至少我知道)。
直到上周我才遇到这些问题。为什么这些问题只发生在某些表上,而且在调试模式下也不会发生?如何进一步解决这些问题?
2条答案
按热度按时间rhfm7lfc1#
我已经打开了一个微软的支持票,并找出了问题-主分支的更改没有被正确发布,它们被“损坏”了。数据工厂正在使用旧的元数据/代码,从来没有更新,因为它应该,因此,为什么它工作在调试模式(当前/新的元数据),但不与触发器(已发布的元数据/代码)。
已通过使用OData重新创建链接服务连接并在使用它的数据集中替换它来修复此问题。
pengsaosao2#
我也面临过类似的问题。似乎触发器使用的是旧版本的ARM部署。
x1c 0d1x的数据
我断开了Git配置,然后重新启用/重新添加了repo,最后选择了“Overwrite live mode”选项来将ADF部署与repo中的代码同步。