具有参数化架构的Azure DataFactory DelimitedText数据集

时间:2019-06-17 08:39:30

标签: azure azure-data-factory-2

我正在尝试创建具有参数化文件名和架构的通用CSV数据集,以便能够在包含文件列表的foreach循环中使用它,并且在发布时遇到了一些麻烦,而且我不知道做错了或框架文档不正确。

根据documentation,架构描述为:

  

定义数据集物理类型架构的列。类型:数组(或带有resultType数组的Expression),itemType:DatasetSchemaDataElement。

我有一个数据集,该数据集的参数名为Schema,类型为Array,“ schema”设置为返回此参数的表达式:

{
    "name": "GenericCSVFile",
    "properties": {
        "linkedServiceName": {
            "referenceName": "LinkedServiceReferenceName",
            "type": "LinkedServiceReference"
        },
        "parameters": {
            "Schema": {
                "type": "array"
            },
            "TableName": {
                "type": "string"
            },
            "TableSchema": {
                "type": "string"
            }
        },
        "folder": {
            "name": "Folder"
        },
        "type": "DelimitedText",
        "typeProperties": {
            "location": {
                "type": "AzureDataLakeStoreLocation",
                "fileName": {
                    "value": "@concat(dataset().TableSchema,'.',dataset().TableName,'.csv')",
                    "type": "Expression"
                },
                "folderPath": "Path"
            },
            "columnDelimiter": ",",
            "escapeChar": "\\",
            "firstRowAsHeader": true,
            "quoteChar": "\""
        },
        "schema": {
            "value": "@dataset().Schema",
            "type": "Expression"
        }
    },
    "type": "Microsoft.DataFactory/factories/datasets"
}

但是,当我发布时,出现以下错误:

Error code: BadRequest
Inner error code: InvalidPropertyValue
Message: Invalid value for property 'schema'

我做错什么了吗?文档错了吗?

1 个答案:

答案 0 :(得分:0)

是的,这是预期的行为。如果需要为列映射设置动态值,请忽略DelimitedText数据集中的架构,这更多是为了直观地显示物理架构信息,并且在执行复制活动列映射时不会生效。也不允许对其进行表达式设置。您可以将映射配置为表达式来实现此目标,并在触发器运行时将其传递给适当的值。 enter image description here