使用ADF的SAP CDC连接器抽取SAP数据时解析失败求助
解决ADF SAP CDC连接器数据解析失败问题
问题描述
使用Azure Data Factory(ADF)的SAP CDC连接器抽取SAP数据时,源端预览数据正常,但执行复制活动触发源端解析失败错误:
源数据示例:
START_DT|PROD_NAME|END_DT 20201230165830.0|BBEESABX|20180710143703.0
错误信息:
Failure happened on 'Source' side. ErrorCode=SapParsingDataFailure,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Failed when parsing data, parsing value: 'ESABX 201807', expected data type 'Microsoft.DataTransfer.Common.Shared.ClrTypeCode'.Please check your origin data in SAP side,Source=Microsoft.DataTransfer.Runtime.SapRfcHelper,''Type=System.FormatException,Message=Input string was not in a correct format.,Source=mscorlib,'
已尝试调整目标端配置(切换Parquet/CSV格式、更换复制行为选项),问题未解决。
排查与解决步骤
- 核查SAP源数据一致性:错误提示中解析的
ESABX 201807与预览的BBEESABX不符,说明实际抽取的数据集存在格式异常值。登录SAP系统检查对应表的PROD_NAME字段,确认是否存在带空格、特殊字符或长度超出定义的记录。 - 手动指定数据类型映射:在ADF的SAP CDC源数据集配置中,强制将PROD_NAME字段设为
String类型,避免自动类型推断因格式异常报错。 - 添加源端数据过滤规则:在复制活动的源端配置中,设置数据验证规则,过滤掉PROD_NAME格式不符合要求的记录(如包含空格、长度异常的行),避免错误数据中断任务。
- 验证SAP RFC函数输出:检查SAP端的RFC函数,确认批量抽取时返回的所有字段格式是否一致,排除RFC返回异常值的情况。
- 前置数据清洗处理:若无法修改SAP源数据,可在复制活动前添加Data Flow转换活动,对PROD_NAME字段做清洗(去除空格、截取有效字符等)后再写入目标存储。
内容的提问来源于stack exchange,提问作者dragonachu
相关产品推荐
相关产品推荐

