是否可以将 azure 流分析与 mod 总线一起使用?
Posted
技术标签:
【中文标题】是否可以将 azure 流分析与 mod 总线一起使用?【英文标题】:is it possible to use azure stream analytics with mod bus? 【发布时间】:2020-06-19 12:05:22 【问题描述】:实际上,我正在使用 Modbus 模拟器并将数据发送到 azure iot hub。我正在使用 azure 流分析,但我无法对 modbus 数据应用任何查询,是否可以对 modbus 数据或 opc ua 应用 azure 流分析查询模拟数据只有一个可以执行的查询是 select * 并且还可以通过 azure 分析查询找到对象值。我提供json值供参考 “身体”: "PublishTimestamp": "2020-06-23 05:34:22", “内容”: [ "HwId": "PowerMeter-0a:01:01:01:01:01", “数据”: [ "CorrelationId": "DefaultCorrelationId", "SourceTimestamp": "2020-06-23 05:34:21", “价值观”:[ "DisplayName": "湿度", “地址”:“400002”, “价值”:“47” , "DisplayName": "温度", “地址”:“400001”, “价值”:“78” ] ] ] 我需要通过天蓝色分析查询找到价值数据 这是我的查询我能够获取数据直到内容
选择 正文内容 从温度
当我尝试这个查询时 选择 body.Content.data.Values.Value 从温度
我得到 null 作为输出
提前致谢 视频
【问题讨论】:
您好 Avinash,我认为您需要付出更大的努力来解释您的要求。我什至不确定你是在寻求帮助以外的任何东西。你指的是什么规则?请写清楚的陈述来解释您的设置,并在必要时添加屏幕截图。 【参考方案1】:这是我能找到的关于这个主题的唯一问题。我在做基本相同的事情:我在 IoT Edge 应用程序中使用 Azure Marketplace 中的 Modbus 模块,我想解析来自 IoT 中心的传入 Modbus 数据,以便我可以在表格中查看它,每个引用其关联的 HwId 和时间戳的值。
我想我找到了一些可能对你有用的东西。您需要使用 GetArrayElements 将每个嵌套的 JSON 值指定为数组:
SELECT
ncontent.ArrayValue.HwId as HwId,
ndata.ArrayValue.SourceTimestamp as [Timestamp],
nvalues.ArrayValue.DisplayName as DisplayName,
nvalues.ArrayValue.Address as Address,
nvalues.ArrayValue.Value as Value
INTO
<output>
FROM
<input> i
CROSS APPLY GetArrayElements(i.Content) as ncontent
CROSS APPLY GetArrayElements(ncontent.ArrayValue.Data) as ndata
CROSS APPLY GetArrayElements(ndata.ArrayValue.[Values]) as nvalues
这是我在测试结果中得到的输出:
HwId Timestamp DisplayName Address Value
"HwId1" "2020-06-26 19:16:31" "HREG0002" "40002" "32019"
"HwId2" "2020-06-26 19:16:31" "HREG0005" "40005" "17506"
"HwId3" "2020-06-26 19:16:31" "HREG0008" "40008" "33352"
【讨论】:
以上是关于是否可以将 azure 流分析与 mod 总线一起使用?的主要内容,如果未能解决你的问题,请参考以下文章
Azure 服务总线通知中心是不是与 websockets 和 javascript 一起使用?