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

Posted

技术标签:

【中文标题】Azure 数据工厂:获取违规记录的文件名和记录号【英文标题】:Azure Data Factory: Get the filename and record number of the offending record 【发布时间】:2022-01-16 23:31:31 【问题描述】:

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

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

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

这令人沮丧,因为那里有数千个文件。如何找出发生在哪个文件中的哪条记录?

【问题讨论】:

【参考方案1】:

这可能主要与具有Datetimestamp 值的列有关。一旦你确定了一个表,你就可以用正确的数据类型来改变表。

关注这个官方的 MS 文档 ADF throws error: Unexpected error encountered filling record reader buffer ClassCastException 了解详细故障排除。

【讨论】:

这是在现场生产环境中,我们需要找到违规记录。我们不允许更改管道以获取不良记录等。我知道这很愚蠢,但是是的,这就是我们所处的位置。只是想知道 Azure 为什么会提到错误,而不是在哪里发现错误!它应该在某个地方记录这个! 我同意,你还有什么发现吗?

以上是关于Azure 数据工厂:获取违规记录的文件名和记录号的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Azure 数据工厂解析 Excel 的每一行

是否有查看 azure 数据工厂日志的工具?

如何使用 azure 数据工厂拆分列值

MYSQL 变更数据捕获 (CDC) - Azure 服务(Azure 数据工厂)

Azure 数据工厂中的复制数据未完全读取文件

如何使用数据工厂将数据从 Azure Blob 存储增量加载到 Azure SQL 数据库?