Azure数据工厂 - 复制活动映射

时间:2018-02-05 23:57:20

标签: azure azure-sql-database azure-data-factory azure-data-lake

我正在尝试将数据从json文件复制到数据库。数据库上有两列需要使用相同的json字段填充。但是,如果我执行此映射,则在运行活动时会出现错误:An item with the same key has already been added。是不是可以做这一对多的映射?

1 个答案:

答案 0 :(得分:5)

在ADF中尚不支持将源数据集架构中的一列映射到目标中的多个列。

但是还有其他方法可以实现这一点,方法是更改​​源数据集架构以使其具有重复列。然后,您可以使用这些重复列映射到差异目标列。

与SQL数据集类似,您可以使用sql查询,例如"选择column1作为column1A,column1作为column1B从xxx"获取源数据集中的重复列。然后,您可以将column1A映射到destCol1,将column1B映射到destCol2。

对于这种情况下的JSON文件,您可以使用jsonPathDefinition来定义重复列。 参考https://docs.microsoft.com/en-us/azure/data-factory/supported-file-formats-and-compression-codecs#json-format

例如,您有一个格式为

的json
{"a":1,"b":2}

然后您可以设置数据集格式属性,如

"format": {
    "type": "JsonFormat",
    "filePattern": "setOfObjects",
    "jsonPathDefinition": {
        "a1": "$.['a']",
        "b": "$.['b']",
        "a2": "$.['a']"
    }
},

它将在源数据集模式中创建3列a1,b,a2,其中a1和a2引用相同的json字段a。然后,您将能够将这些列映射到目标中的不同列。

由于