Forum Discussion

jyhuytrty's avatar
jyhuytrty
Occasional Reader
Oct 31, 2024

腾龙娱乐联微开户70411382人

实际的环境中,IoT设备可以生成大量的数据。为了减少上传的数据量或者降低控制策略的生产延迟,有时必须在设备端对数据进行实时分析或处理。Azure Stream Analytics服务就是很好的解决方案方案一,用户可以从Azure Portal中创建Azure Stream Analytics服务,然后在Azure IoTHub中将其设置为IoT Edge Module并部署到Azure IoT Edge设备上。本文将演示如何创建Azure Stream Analytics作业,并将其部署到IoT Edge设备上。

1.创建存储账户

      首先,在Azure门户中,转到“新建”,在搜索框中输入“存储”,选择“存储帐户 - Blob,文件、表、队列”。

 

 

      然后,在“创建存储帐户”中,输入存储帐户的名称,选择存储IoTHub的相同位置(这里为东亚),然后选择“创建”。请记下该名称以供稍后使用。

 

 

      接下来,转到刚才创建的存储账户,选择“Blob Service”。为Azure Stream Analytics模块创建一个用于存储数据的新容器,将访问级别设置为“Container”,选择“确定”。

 

 

2.创建Azure流分析作业

      首先,在Azure门户中,转到“创建”>“物联网”,然后选择“流分析作业”。

 

 

      然后,在“新建流分析作业”中执行以下操作:在“作业名称”框中输入作业名称;在“托管环境”下,选择“Edge”;在剩余字段中使用默认值。

      然后,在所创建作业中的“作业拓扑”下,依次选择“输入”-“添加”。在“输入别名”框,输入温度。在“源类型”框,选择“数据流”。剩余字段中使用默认值。 

 

 

       接下来,在所创建作业中的“作业拓扑”下,依次选择“输出”-“添加”,在“输出别名”框中,键入警报,在剩余字段中使用默认值。之后选择“创建”。 

 

 

      最后,在所创建作业中的“作业拓扑”下,依次选择“查询”-“添加”,加入以下SQL语句并保存

从温度时间戳中选择 
     “重置”作为命令
进入
    警报    ,按时间创建分组,按 TumblingWindow(秒,30)分组,按 Avg(machine.temperature)> 70



3. 部署Stream Analytics Job

      首先,在Azure Portal的IoTHub页面内,转到“IoT Edge”并打开IoT Edge设备的详细信息页面。

 

 

      “设置模块”,并确保已经按照文章中的步骤之前添加了tempSensor模块,因为这里的Azure Stream Analytics模块是针对选择tempSensor模块产生的数据来进行实时分析的。

 

 

      在“添加模块”页面,选择“导入 Azure Stream Analytics IoT Edge 模块”,

 

 

      在接下来的Edge Deployment页面,选择之前创建好的Stream Analytics - Edge Job,注意,这里要选择之前第一部分已经创建好的存储账户和容器,点击保存,如下图所示。

 

 

      之后,将下面的代码复制到路由,将{ moduleName }替换为复制的模块名称:

{
     “routes”:{                                                              
       “telemetryToCloud”:“从/messages/modules/tempSensor/* 到 $upstream”,
       “alertsToCloud”:“从/messages/modules/{moduleName}/* 到 $upstream”,
       “alertsToReset”:“从/messages/modules/{moduleName}/* 到 BrokeredEndpoint(“/modules/tempSensor/inputs/control”)”,
       “telemetryToAsa”:“从/messages/modules/tempSensor/* 到 BrokeredEndpoint(“/modules/{moduleName}/inputs/temperature”)”
     }
}

      选择下一步,然后提交。看到返回到“设备详细信息”页面,并选择“刷新”。应会新的流分析模块已经在列表中,但状态还是一个待部署。

 

 

      稍后,等该模块部署到设备以后,刷新列表,可以发现,EdgeASA已经处于运行状态。

 

 

      回到Putty工具,利用“docker log -f {moduleName}”指令(其中,{moduleName}用刚刚部署的流分析模块的名称代替),就可以查看流分析的日志信息。

No RepliesBe the first to reply

Resources