ADF管道失败求助:Parquet加载Synapse遇数据问题,日志存疑
ADF管道加载Parquet到Synapse失败排查建议
一、先处理_rejectedrows目录中的错误文件
- 直接通过ADF存储连接器、Synapse Studio存储浏览器或Azure存储资源管理器打开这些文件:
*error.txt会记录每行数据的具体错误原因(如字段类型不匹配、值超出范围、空值违反约束等),*Row.txt是对应的出错行原始数据,用来精准定位问题行。 - 若文件为压缩格式(如
.gz),可下载到本地解压后查看,或用存储资源管理器在线解压读取。
二、解决警告日志为空的问题
- 核对日志配置路径:确认ADF复制活动的日志设置中,存储账户、容器、文件夹路径与生成
_rejectedrows的路径一致,同时检查ADF托管标识对该存储路径是否具备读写权限。 - 调整日志级别为详细:警告级别仅记录告警信息,详细级别会包含数据校验、读取写入过程的完整细节,更容易定位根因。
三、数据与Schema层面排查
- 比对Parquet文件与Synapse目标表的Schema:重点检查字段类型匹配(如Parquet的INT64对应Synapse的BIGINT,STRING对应VARCHAR/NVARCHAR)、字段顺序、是否存在新增/缺失字段,以及Synapse表不允许空值但Parquet中存在空值的情况。
- 抽样检查Parquet文件内容:用Pandas、Apache Parquet Tools等工具查看具体行数据,排查是否存在超长字符串、特殊字符、不符合格式的日期值等异常数据。
- 检查Synapse目标表约束:确认主键、唯一约束、检查约束是否被数据违反。
四、复制活动配置检查
- 查看容错设置:若开启了跳过错误行或允许部分失败,
_rejectedrows就是出错行的收集目录,需根据*error.txt中的错误码和描述,对应ADF官方错误码说明解析具体问题。 - 确认Schema映射:自动映射可能出现类型匹配错误,建议手动核对映射关系,尤其是数组、结构体等复杂类型的处理逻辑。
五、补充排查步骤
- 小批量测试:抽取单个小体积Parquet文件测试,验证是否能成功加载,逐步扩大范围以定位是特定文件还是全局问题。
- 查看活动输出:在ADF监控页面找到失败的复制活动,查看输出中的读取行数、写入行数、失败行数及直接显示的错误消息,部分根因会直接在这里呈现。
内容的提问来源于stack exchange,提问作者Kleber
相关产品推荐
相关产品推荐

