来自参数的 Azure 数据工厂源数据集值

Azure Data Factory Source Dataset value from Parameter

我在 Azure Datafactory 中有一个由 CSV 文件支持的数据集。我在 Dataset 中添加了一个额外的列,并想从 Dataset 参数传递它的值,但值永远不会被复制到该列

  "type": "AzureBlob",
    "structure": 
    [
        {
            "name": "MyField",
            "type": "String"
        }
    ]

我也有定义的参数

   "parameters": {
        "MyParameter": {
            "type": "String",
            "defaultValue": "ABC"
        }
    }  

如何将参数值复制到Column?我试过关注但没用

   "type": "AzureBlob",
    "structure": 
    [
        {
            "name": "MyField",
            "type": "String",
            "value": "@dataset().MyParameter"
        }
    ]

但这不起作用。尽管设置了参数值

,但我在目标中得到 NULL

根据文档:Expressions and functions in Azure Data Factory,目前 Azure 数据工厂不支持 @dataset().XXX。因此,您不能将参数值作为自定义列直接用于本机副本 activity 的接收器或源中。

但是,您可以采用以下解决方法:

1.You 可以创建一个 custom activity 并编写代码来执行您需要的任何操作。

2.You 可以在 azure 数据湖中暂存 csv 文件,然后执行 U-SQL 脚本以从文件中读取数据并使用管道附加新列 rundId。然后将其输出到数据湖中的新区域,以便管道的其余部分可以提取数据。为此,您只需简单地将一个参数从 ADF 传递给 U-SQL。请参考U-SQL Activity.

在这个帖子中:use adf pipeline parameters as source to sink columns while mapping,客户使用了第二种方式。