繁体   English   中英

Azure数据工厂数据流json到SQL

[英]Azure data factory data flow json to SQL

我有一个包含分层数据的源 JSON 文件,我需要将其放入两个 SQL 表(关系)中。 JSON 如下

{
"orders":[
  {
    "orderid":"30933",
    "ordername":"abc",
    "items":[
      {
        "itemid":1,
        "itemstatus":"Failed"
      },
      {
        "itemid":2,
        "itemstatus":"Failed"
      }
    ]
  },
  {
    "orderid":"308320",
    "ordername":"xyz",
    "items":[
      {
        "itemid":5,
        "itemstatus":"Succeeded"
      }
    ]
  }
]
}

我的 SQL 持有两个表 Order 和 OrderItem 与 OrderID 主键和外键。

现在我有一个 Azure 数据工厂数据流,其来源如上 JSON,我需要将所有数据关系停放在各个表中。

所以在这里我需要 OrderId(30933,308320) 和 OrderName(abc,xyz) 将 go 到 Order 表中,并将相应的项目数据 go 到 OrderItem 表中(从 Order 表中引用 OrderId)。 在这种情况下,Order 表有 2 个,OrderItem 表有 3 个条目。

我们无法在一个副本中实现这一点。

我们可以在一个管道中使用两个副本活动,我测试过并且成功了。 你可以按照我下面的步骤:

  1. 复制 active1:将数据从Orders (orderid 和 ordername)复制到表Orders中。
  2. 复制 active2:将items (itemid 和 itemstatus)中的数据复制到表OrderItems中。

笔记:

  1. 复制活动 1 和 2 使用相同的 json 文件作为源文件。 不同之处在于映射设置。

  2. Copy active 1 sink is Azure SQL database table Orders , Copy active 2 sink is Azure SQL database table OrderItems .

为了让大家看清楚,我做了两张GIF图。

Copy active 1 中的映射设置: 在此处输入图像描述

Copy active 2 中的映射设置: 在此处输入图像描述

运行管道:

在此处输入图像描述

检查表中的数据:

在此处输入图像描述

限制是我们只能获取items的第一个元素,我们不能同时选择集合引用。

在此处输入图像描述

更新:

恭喜您以另一种方式实现了它:使用数据流展平/转置数据,然后将其维护到关系 SQL 表中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM