我正在尝试将数据从 json 文件复制到数据库。数据库中有两列需要填充相同的 json 字段。但是,如果我执行此映射,则在运行事件时会收到错误:已添加具有相同键的项目
。难道不能进行一对多映射吗?
最佳答案
ADF 尚不支持将源数据集架构中的一列映射到目标中的多列。
但是还有其他方法可以实现此目的,通过更改源数据集架构以使其具有重复列。然后您可以使用这些重复的列映射到不同的目标列。
与 SQL 数据集一样,您可以使用 SQL 查询“从 xxx 选择列 1 作为列 1A,列 1 作为列 1B”来获取源数据集中的重复列。然后您可以将column1A映射到destCol1,将column1B映射到destCol2。
对于本例中的 JSON 文件,您可以使用 jsonPathDefinition 来定义重复列。 引用https://learn.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。然后您将能够将这些列映射到目标中的不同列。
谢谢
关于Azure 数据工厂 - 复制事件映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48633441/