流分析:对事件和参考执行 JOIN。 JSON 格式的数据
Posted
技术标签:
【中文标题】流分析:对事件和参考执行 JOIN。 JSON 格式的数据【英文标题】:Stream Analytics: performing a JOIN on events and ref. data in JSON 【发布时间】:2016-06-15 08:58:09 【问题描述】:我想在 Azure 流分析中对传入的 JSON 事件和 JSON 引用数据执行 JOIN 查询。
JSON 事件如下所示:
"devicename":"12345","value":25
JSON 参考数据(简化)如下所示:
"Id": "configuration",
"Sites": [
"Id": "b83939b5-6502-4140-b807-205162ac4939",
"Name": "site1",
"Location":
"Latitude": 5.000,
"Longitude": 5.000
,
"Lines": [
"Id": "e707a451-948a-498e-80de-d61bc448a5ef",
"Name": "line1",
"Sections": [
"Id": "d17d762c-4291-4912-9dcf-72113c9f0b4b",
"Name": "section1",
"Sensors": [
"Id": "S1_PL1_LS1_M1_device_001",
"Name": "sensor1",
"ExpectedAVG": 55,
"ExpectedMIN": 35,
"ExpectedMAX": 75,
"TypeOfSensor": "Humidity"
,
"Id": "S1_PL1_LS1_M1_device_002",
"Name": "sensor2",
"ExpectedAVG": 105,
"ExpectedMIN": 90,
"ExpectedMAX": 118,
"TypeOfSensor": "Temperature"
]
]
]
]
现在我想对传入的设备数据和参考数据执行 JOIN。
SELECT
i.devicename as pk,
i.value as rk,
system.timestamp as time,
r.Sites.Lines.Sections.Sensors.Temperature as Temperature,
r.Sites.Lines.Sections.Sensors.Humidity as Humidity
INTO
output
FROM
IoTHubStream i
INNER JOIN
Reference r ON r.Sites.Lines.Sections.Sensors.Id = i.devicename
现在该怎么做呢?问题是参考数据可以改变,我想动态处理。 我正在考虑使用 WHERE 语句,但我不知道这会是什么样子,非常欢迎一些建议/帮助。
提前致谢!
【问题讨论】:
【参考方案1】:您可以使用本页 https://msdn.microsoft.com/en-us/library/azure/mt298451.aspx 中描述的 GetArrayElements 访问数组元素
如果您的数据更改导致无法使用 GetArrayElements,请分享有关其更改方式的详细信息。
【讨论】:
以上是关于流分析:对事件和参考执行 JOIN。 JSON 格式的数据的主要内容,如果未能解决你的问题,请参考以下文章
如何捕获来自事件中心的错误 json 记录到 azure 流分析