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.然后,您将能够将这些列映射到目标中的不同列.
谢谢
| 归档时间: |
|
| 查看次数: |
802 次 |
| 最近记录: |