You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 00:52:41