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。然后您将能够将这些列映射到目标中的不同列。

谢谢