Azure Data Factory数据流输出至Azure SQL全为NULL的配置问题求助
排查Azure Data Factory数据流数据写入NULL问题
针对你遇到的管道执行成功但SQL表无数据、预览全NULL的问题,我结合ADF数据流的常见配置坑,给你一步步拆解排查和修复方案:
一、先解决源数据预览NULL的核心问题
你提到源预览左侧NULL、右侧有有效数据,这大概率是源数据集的CSV读取配置错误,最常见的就是没开启「第一行作为标题」:
- 打开你的Blob CSV源数据集,切换到「连接」标签:
- 务必勾选**「第一行作为标题」**——如果没勾,ADF会把CSV的第一行列名(PARENT、CHILD)当成普通数据行,而实际数据会被识别为漂移列,导致你定义的PARENT/CHILD列全是NULL,有效数据跑到未命名的漂移列里。
- 同时确认分隔符和你的CSV实际一致(比如是逗号还是分号),编码选择和文件匹配(比如UTF-8)。
- 配置完后重新预览源数据,确认PARENT、CHILD列能正常显示有效内容,而不是NULL。
二、修正接收器列映射的错误操作
你之前尝试添加漂移映射(MapDrifted)的方向错了:漂移映射是用来处理源中出现未在数据集定义的额外列,而你的列是预定义好的,只是大小写不同(CSV是大写PARENT/CHILD,SQL是小写parent/child),不需要用漂移映射:
- 回到数据流的接收器模块,删除之前添加的所有漂移映射(MapDrifted1这类)。
- 在标准列映射里,手动将源的
PARENT(大写)拖拽映射到SQL表的parent(小写),CHILD映射到child——ADF支持大小写不同的列名匹配,只要手动对应即可。 - 确认映射后,预览接收器的输入数据,能看到正常的非NULL值。
三、最后检查接收器的关键配置
- 确认接收器的「设置」标签里,除了启用「插入」,没有勾选**「跳过写入空行」**(如果勾选,会过滤掉被识别为空的行,但你管道显示处理了5732行,这个概率不大,但可以排查)。
- 检查SQL链接服务的身份权限:确保链接服务使用的账号(比如SQL认证账号)拥有目标表的
INSERT权限——虽然管道执行成功,但如果权限不足,可能出现静默写入失败的情况(不过ADF一般会报错,但还是建议确认)。
修复后的验证步骤
- 保存数据流和管道,先做数据流的全链路预览,确认从源到接收器的每一步都有非NULL的有效数据。
- 重新执行管道,完成后直接查看Azure SQL的目标表,应该就能看到正常写入的5732条数据了。
内容的提问来源于stack exchange,提问作者Shuti
相关产品推荐
相关产品推荐

