Azure 数据工厂 - 复制事件映射

标签 azure azure-sql-database azure-data-factory azure-data-lake

我正在尝试将数据从 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/

相关文章:

azure - 将私钥证书导入为可在 azure 应用服务中导出

node.js - 为什么我无法访问 docker 容器中的 node.js 应用程序?

php - Azure应用程序服务不使用新的/更改的文件

azure - 将 Azure Webhook authLevel 设置为匿名

sql-server - Azure SQL Server : How to check which queries and how much resources they have used?

azure - 将项目发布到 Azure 后出现内部服务器错误 (500)

sql - 如何在 Azure 数据工厂管道中使用 Try and Catch 命令?

azure - 在 VS2015 中打开 Azure DataFactory 项目

sql-server - 无法在azure sql中为主数据库创建主 key

visual-studio - 如何在 Microsoft Azure 中解压缩大小为 900mb 的文件?