ADF数据流中按指定规则转换源表字段生成新表的技术求助
Azure Data Factory 数据流实现源表到目标表字段转换方案
你遇到的Derived Column实现第一条规则失败的问题,大概率是表达式写法有误——Derived Column组件本身完全可以满足你的所有转换需求,以下是具体实现步骤:
一、Derived Column组件的正确配置
针对4条转换规则,在Derived Column组件中依次配置目标字段:
ProductType字段
使用iif函数完成条件判断,注意字符串匹配需用英文单引号,逻辑或用||:iif(Q0955 == '91' || Q0955 == '92', 'Service', 'Other')若源字段存在多余空格,可先做去空格处理:
iif(trim(Q0955) == '91' || trim(Q0955) == '92', 'Service', 'Other')ProductSubtype字段
直接赋值固定字符串:'Product'ProductNumber字段
直接映射源字段:Q0906ProductName字段
赋值固定字符串:'ProductEnglishName'
二、完整数据流流程
- 添加Source组件,连接源表,确保读取到Q0955、Q0906等所需字段;
- 添加Derived Column组件,连接Source组件,按上述表达式配置4个目标字段;
- (可选)添加Select组件,仅保留新生成的4个目标字段,过滤源表冗余字段;
- 添加Sink组件,连接目标表,完成字段映射即可。
三、常见问题排查
若ProductType仍未正确生成,检查以下内容:
- 确认表达式使用的是英文单引号,而非中文引号;
- 验证源表Q0955字段的实际值是否与'91'/'92'完全匹配(无大小写、空格差异);
- 确认目标表ProductType字段的长度(varchar(10)可容纳'Service'或'Other')。
内容的提问来源于stack exchange,提问作者Eric Chen
相关产品推荐
相关产品推荐

