首页 > 解决方案 > 在列映射中传递管道参数

问题描述

我正在尝试将默认值配置为我的 sourceID 列。我的源是一个文件,我的接收器是一个数据库表。因此,我无法在 sql 查询中定义 sourceID。

我创建了一个参数并定义了值。意图在列映射的动态内容字符串中传递参数。但是,我无法将参数值加载到我的表中。

如果我在动态内容定义中犯了错误,或者有更好的方法来实现预期的结果,请提出建议。

    {
"type":"TabularTranslator",
"columnMappings":{
    "AS_OF_DATE":"AS_OF_DATE",
    "SECTOR_ID":"SECTOR_ID",
    "ASSET_GROUP":"ASSET_GROUP",
    "REGION":"REGION",
    "COUNTRY":"COUNTRY",    
    "FIELD":"FIELD",
    "SECTOR_FLAG":"SECTOR_FLAG",    
    "PRODUCT":"PRODUCT",
    "PERIODICITY":"PERIODICITY",
    "UNIT_CODE":"UNIT_CODE",
    "OPERATORSHIP":"OPERATORSHIP",
    "OPRNAME":"OPRNAME",
    "ACTUAL":"ACTUAL",
    "PLAN":"PLAN",
    "SOURCE_ID":"@{pipeline().parameters.sourceIDmpm}"


    }
}

标签: azureazure-data-factory

解决方案


要在复制活动中动态映射列,请在管道中定义一个“对象”类型的参数:

"parameters": {
"columnMapping": {
"type": "Object"
}
 }

并在复制活动中引用此参数,例如:

"translator": {
"value": "@pipeline().parameters.columnMapping",
"type": "Expression"
}

请注意,您需要将 JSON 值传递给参数。比如我传给参数

'columnMapping'.
{
"type": "TabularTranslator",
"columnMappings": {
"Prop_0": "Prop_0",
"Prop_1": "Prop_1", "Prop_2": "Prop_2"
}
}

有关更多详细信息,您可以参考解决类似问题的MSDN线程。

希望这可以帮助。


推荐阅读