ADF 映射数据流失败并出现 BatchUpdateException

Posted

技术标签:

【中文标题】ADF 映射数据流失败并出现 BatchUpdateException【英文标题】:ADF Mapping Data Flows failing with BatchUpdateException 【发布时间】:2021-01-31 20:07:10 【问题描述】:

过去几个月我有许多映射数据流一直在定期运行,其中一些昨天开始出现故障。

数据流模式是-

来源:2 个 Azure SQL DB 表,Synapse 中的一个查找表

接收器:Synapse (Azure SQL DB) 中的 1 个表

我们启用了 Polybase Staging 以获得更好的性能,因为没有它,每个活动都需要很长时间,并且为此提供了与 Azure Blob 存储帐户的链接服务。

昨晚我们的一些较大的表在中途运行失败并出现以下错误,但较小的表都成功了。几个月来,这些管道或任何链接服务都没有发生任何变化。

进入调试模式后,我无法查看任何 Synapse 接收器活动的数据预览,除非我在设置中禁用“暂存”选项。如果我尝试启用暂存,它会显示“应指定 Blob 存储暂存属性”,这是我在调试设置中输入的,但仍然出现错误。

奇怪的是,这个问题只发生在移动大量数据的数据流上,较小的表在调试模式下也很好。所有这些数据流在 2 天前都是成功的,那么这可能是 Blob 存储中的空间问题吗?

管道活动错误代码:

"StatusCode":"DFExecutorUserError",
"Message":"Job failed due to reason: at Sink 'SinkIntoSynapse': 
java.sql.BatchUpdateException: There are no batches in the input script.",
"Details":"at Sink 'SinkIntoSynapse': 
java.sql.BatchUpdateException: There are no batches in the input script."

【问题讨论】:

【参考方案1】:

我发现这是由于在接收器设置的预复制脚本部分中注释掉了 SQL 语句造成的。

如果您在 Pre-copy 脚本部分有任何内容,请在发布并再次运行数据工厂之前尝试将其删除。

【讨论】:

以上是关于ADF 映射数据流失败并出现 BatchUpdateException的主要内容,如果未能解决你的问题,请参考以下文章

ADF 映射数据流,是不是可以在源上执行 SQL?

Scala 数据集映射失败并出现异常没有为零实际参数找到适用的构造函数/方法

ADF 周末验证失败

无法将查找活动输出映射到 ADF 中的复制活动映射

使用 ADF 调用存储过程

使用 ADF 连接到 Salesforce Marketing Cloud 失败