Azure Data Factory复制Table Storage二进制数据显示System.Byte[]问题排查
解决ADF中Table Storage二进制列复制显示"System.Byte[]"的问题
这个问题本质是ADF在处理二进制列时,默认将byte[]对象转成了其字符串表示(也就是"System.Byte[]"),而非保留原始二进制数据。以下是针对性的解决步骤:
强制匹配源目标列的二进制类型
在复制活动的「映射」界面,找到出问题的列,手动将源和目标列的数据类型都设置为Binary (Edm.Binary)。不要依赖ADF的自动推断,因为自动推断可能误将二进制列识别为字符串类型。关闭源数据集的自动架构推断
打开源Table Storage数据集,进入「连接」标签,取消勾选「自动推断架构」选项,然后手动添加该二进制列并指定类型为Edm.Binary。这样可以避免ADF错误解析列类型。改用Data Flow处理二进制数据
如果复制活动的映射调整后仍不生效,可以尝试用Data Flow替代:- 创建新的Data Flow,源和目标均配置为对应的Table Storage。
- 在Data Flow的映射中,确保二进制列的类型保持
binary,无需额外转换。 - 运行Data Flow管道,验证目标表的二进制数据是否正确写入。
检查目标表的列类型定义
如果目标表是ADF自动创建的,可能会错误将二进制列设为字符串类型。可以通过Azure Storage Explorer或Azure门户,手动修改目标表的对应列类型为Edm.Binary,再重新执行复制。先做小批量测试验证
调整配置后,先复制1-2条包含二进制数据的测试记录,确认目标列值为原始二进制数据而非字符串后,再执行全量迁移。
内容的提问来源于stack exchange,提问作者Jim-Alexander Berger Gundersen
相关产品推荐
相关产品推荐

