Azure Data Factory列重命名及扩展功能技术咨询
Azure Data Factory 复制活动列重命名规则实操指南
1. 引用管道参数、变量、Lookup结果等外部数据
在TabularTranslator的mappings中,直接使用ADF动态表达式语法引用外部数据,表达式以@开头:
- 引用管道参数:
@pipeline().parameters.YourParameterName - 引用管道变量:
@pipeline().variables.YourVariableName - 引用Lookup活动的结果:
@activity('YourLookupActivityName').output.firstRow.YourColumnName
示例:将目标列名设为管道参数值
{ "type": "TabularTranslator", "mappings": [ { "source": { "name": "Property1" }, "sink": { "name": "@pipeline().parameters.TargetProvinceName" } } ] }
2. 通过表达式匹配源列名构造目标列名
使用动态映射模式,结合ADF字符串函数(replace、split、concat)和条件函数(switch、if)匹配源列并生成目标名:
示例:匹配PropertyX格式的源列,替换为对应层级名称
{ "type": "TabularTranslator", "mappings": [ { "source": { "name": "@item().sourceName" }, "sink": { "name": "@switch(replace(item().sourceName, 'Property', ''), '1', 'Province', '2', 'Division', '3', 'County', '4', 'District', '5', 'Municipality', item().sourceName)" } } ] }
如果需要批量匹配所有源列,可先通过Lookup活动获取源列列表,再用表达式遍历生成映射规则:
{ "type": "TabularTranslator", "mappings": "@activity('GetColumnMappings').output.value" }
其中GetColumnMappings是Lookup活动,返回预先定义的源-目标列映射数组。
3. 仅重命名部分列,其余列保留原名
有两种高效实现方式:
方式1:自动映射+手动修改
在复制活动的映射设置中,先勾选「自动映射」,ADF会自动生成所有源列到目标列的同名映射;再手动修改需要重命名的列的目标名称即可。
方式2:动态生成映射数组
通过表达式组合固定重命名列和其余列的同名映射:
{ "type": "TabularTranslator", "mappings": "@concat( '[', string(join( createArray( '{\"source\": {\"name\": \"Property1\"}, \"sink\": {\"name\": \"Province\"}}', '{\"source\": {\"name\": \"Property2\"}, \"sink\": {\"name\": \"Division\"}}' ), ',' )), ',', string(join( filter(activity('GetSourceColumns').output.columns, not(contains(['Property1','Property2'], item().name))), ',{\"source\": {\"name\": \"', item().name, '\"}, \"sink\": {\"name\": \"', item().name, '\"}}' )), ']' )" }
注:GetSourceColumns是Lookup活动,用于获取所有源列列表。
4. 复制活动之外的可选活动
如果列重命名逻辑复杂或需要动态化管理,可搭配以下活动:
- Lookup活动:读取外部存储的列映射规则(如数据库表、JSON文件),为复制活动提供动态映射数据源;也可用于获取源/目标列列表。
- Set Variable活动:构造或存储映射规则的JSON字符串,传递给复制活动的
TabularTranslator。 - Data Flow活动:适合复杂列转换场景,支持可视化配置派生列、选择转换,可通过正则表达式、多条件判断批量处理列重命名,还能集成数据校验、转换逻辑。
- ForEach活动:批量处理多个表的列重命名任务,遍历表列表并为每个表生成对应的复制活动映射。
内容的提问来源于stack exchange,提问作者Nomenator
相关产品推荐
相关产品推荐

