Azure 数据工厂 - 复制 activity 映射
Azure Data Factory - Copy activity mappings
我正在尝试将数据从 json 文件复制到数据库。数据库中有两列需要用相同的 json 字段填充。但是,如果我执行此映射,我会在 运行 the activity: An item with the same key has already been added
时收到错误消息。做这个一对多的映射是不可能的吗?
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}
然后你可以设置数据集格式属性如
"format": {
"type": "JsonFormat",
"filePattern": "setOfObjects",
"jsonPathDefinition": {
"a1": "$.['a']",
"b": "$.['b']",
"a2": "$.['a']"
}
},
它将在源数据集架构中创建 3 列 a1、b、a2,其中 a1 和 a2 引用相同的 json 字段 a。然后您将能够将这些列映射到目标中的不同列。
谢谢
我正在尝试将数据从 json 文件复制到数据库。数据库中有两列需要用相同的 json 字段填充。但是,如果我执行此映射,我会在 运行 the activity: An item with the same key has already been added
时收到错误消息。做这个一对多的映射是不可能的吗?
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}
然后你可以设置数据集格式属性如
"format": {
"type": "JsonFormat",
"filePattern": "setOfObjects",
"jsonPathDefinition": {
"a1": "$.['a']",
"b": "$.['b']",
"a2": "$.['a']"
}
},
它将在源数据集架构中创建 3 列 a1、b、a2,其中 a1 和 a2 引用相同的 json 字段 a。然后您将能够将这些列映射到目标中的不同列。
谢谢