我在摄入JSON虽然EventHub,通过工作流处理它,将其推到一个SQL Azure的DW做POC。
我曾与JSON摄入的工作之前,但我现在面临的困难是,在JSON中使用的命名结构。
{
"1-1": [{
"Details": [{
"FirstName": "Super",
"LastName": "Man"
}
]
}
]
}
根元素有一个连字符( - ),我有艰难的时间,通过这个元素解析访问相关项目。
我曾尝试以下查询,我得到它输出到SQL表的空值:
--#1
SELECT
["2-1"].Details.FirstName AS First_Name
,["2-1"].Details.LastName AS Last_Name
INTO
[SA-OUTPUT]
FROM
[SA-INPUT]
--#2
SELECT
[2-1].Details.FirstName AS First_Name
,[2-1].Details.LastName AS Last_Name
INTO
[SA-OUTPUT]
FROM
[SA-INPUT]
--#3
SELECT
2-1.Details.FirstName AS First_Name
,2-1.Details.LastName AS Last_Name
INTO
[SA-OUTPUT]
FROM
[SA-INPUT]
--#4
SELECT
SA-INPUT.["2-1"].Details.FirstName AS First_Name
,SA-INPUT.["2-1"].Details.LastName AS Last_Name
INTO
[SA-OUTPUT]
FROM
[SA-INPUT]
希望得到正确的方式做到这一点。
提前致谢。
你的JSON模式是嵌套的,但也有一定的阵列。为了读取数据,您将需要使用GetArrayElement功能。
这里有一个查询,将读取你的样本数据:
WITH Step1 AS(
SELECT GetArrayElement([1-1], 0) as FirstLevel
FROM iothub),
Step2 AS(
SELECT GetArrayElement(FirstLevel.Details,0) SecondLevel
FROM Step1)
SELECT SecondLevel.FirstName, SecondLevel.LastName from Step2
欲了解更多信息,你可以看看我们的页面Work with complex Data Types in JSON and AVRO。
让我知道如果你有任何问题。
谢谢,JS(ASA队)
它试图和它美丽的工作。如果可以说,我有机会从两个独立的数组元素的数据,我会创建两个单独的CTE。
{
"1-1": [{
"Details": [{
"FirstName": "Super",
"LastName": "Man"
}
]
}
]
},
{
"2-1": [{
"Address": [{
"Street": "Main",
"Lane": "Second"
}
]
}
]
}
如何从两个热膨胀系数合并元素融入其中输出查询?我只能在下面一行是指CTE。