如何使用Azure数据工厂将json文档解压到SQL数据库

如何使用Azure数据工厂将json文档解压到SQL数据库,json,business-intelligence,azure-cosmosdb,azure-data-factory,azure-sql-database,Json,Business Intelligence,Azure Cosmosdb,Azure Data Factory,Azure Sql Database,我需要将数据从DocumentDB复制到Azure SQL数据库 Json文档如下所示: { “设备ID”:“D1” “时间”:“2017-07-27T20:00:00” “温度”:25 “人类”:50 } 目标SQL数据库表结构为(设备ID |传感器ID |值|时间) 所以数据是这样的: 设备ID |传感器ID |值|时间 现在该如何实现呢 我认为更改Json文档结构以获得传感器ID和值的列表,这可能是一个糟糕的设计,但数据工厂也拒绝了它,因为列表列不受支持 我现在想创建一个这样的结构化表(D

我需要将数据从DocumentDB复制到Azure SQL数据库

Json文档如下所示:

{

“设备ID”:“D1”

“时间”:“2017-07-27T20:00:00”

“温度”:25

“人类”:50

}

目标SQL数据库表结构为(设备ID |传感器ID |值|时间) 所以数据是这样的:

设备ID |传感器ID |值|时间 现在该如何实现呢

我认为更改Json文档结构以获得传感器ID和值的列表,这可能是一个糟糕的设计,但数据工厂也拒绝了它,因为列表列不受支持

我现在想创建一个这样的结构化表(DeviceID | Temperature | Humedity | Time)并使用ADF将数据复制到它,然后使用SQL的UNPIVOT子句将数据再次从它复制到我的表中


在SQL Azure和SQL Server引擎中实现正确/最佳实施的任何帮助??

: 您可以使用OPENJSON将其转换为关系形式。然后,您可以使用SQL PIVOT操作符将行透视到列:

因此,您可以将JSON放在SQL中,然后进行转换


ADF中可能还有其他路径也可以使用。

第一眼看到的data factory文档并没有表明它可以映射内置的列

Data factory通过将数据集的类型指定为Json并定义其结构,对Json提供了本机支持

我建议您在门户中使用复制向导,以熟悉data factory的工作方式


然后可以使用

映射列,请参见。避免提出主观问题。这个问题没有一个“正确”的答案。第一个URL涵盖了Blop作为datasoruce的情况,但我使用DocumentDB作为datasoruce。我认为类似“jsonPathDefinition”的东西非常有用,但DocumentDB不支持它。
D1      |  Temperature   |      25     | 2017-07-27 20:00:00 
D1      |  Humedity      |      50     | 2017-07-27 20:00:00