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

Ale*_* B. 1 azure azure-data-factory azure-sql-database azure-data-lake

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

小智 5

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

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

与SQL数据集一样,您可以使用sql查询,例如"select column1 as column1A,column1 as column1B from 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}
Run Code Online (Sandbox Code Playgroud)

然后你可以设置数据集格式属性

"format": {
    "type": "JsonFormat",
    "filePattern": "setOfObjects",
    "jsonPathDefinition": {
        "a1": "$.['a']",
        "b": "$.['b']",
        "a2": "$.['a']"
    }
},
Run Code Online (Sandbox Code Playgroud)

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

谢谢