Azure数据工厂:获取违规记录的文件名和记录号



我正在尝试摄取一堆文件,而我在Azure数据工厂中遇到的唯一错误是这个-

对目标复制isolation_advice_details到SQL的操作失败:ErrorCode=PolybaseOperationFailed,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=将数据加载到SQL数据仓库时出错。操作:"Polybase操作"。,Source=Microsoft.DataTransfer.ClientLibrary,'Type=System.Data.SqlClient.SqlException,Message=HdfsBridge::recordReaderFillBuffer-填充记录读取器缓冲区时遇到意外错误:HadoopExecutionException:列[-1]中的字符串太长:实际长度=[251]。MaxLEN=[250],Source=.Net SqlClient Data Provider,SqlErrorNumber=107090,Class=16,ErrorCode=-2146232060,State=1,Errors=[{Class=16

消息=HdfsBridge::recordReaderFillBuffer-填充记录读取器缓冲区时遇到意外错误:HadoopExecutionException:列[-1]中的字符串太长:实际长度=[251]。MaxLEN=[250],},],'

这很令人沮丧,因为里面有成千上万的文件。我如何找出发生这种情况的文件中的记录?

这可能主要与具有Datetimestamp值的列有关。一旦确定了具有正确数据类型的表,就可以对其进行ALTER。

遵循此MS官方文档ADF抛出错误:在填充记录读取器缓冲区ClassCastException时遇到意外错误,以了解详细的疑难解答。

实现这一点的一种方法是使用"容错";在";复制到SQL";设置。这肯定会缓解问题。然而,这对我们来说并不合适,因为在数十条管道上设置容错将意味着在日常维护中有更高水平的手动交互,而我们目前的资源无法应对。它可能对其他人有效:(