博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
为 Azure IoT Edge 设备部署 Azure Stream Analytics 服务
阅读量:7237 次
发布时间:2019-06-29

本文共 2597 字,大约阅读时间需要 8 分钟。

      在前面的两篇文章《》和《》中,我们学习了如何在Windows 10和Linux系统上进行Docker的部署和Python、Iotedgectl工具的安装,同时,在Azure Portal上完成了IoT Edge Device的创建、Azure IoT Edge Module的部署与运行。而在实际的生产环境中,IoT 设备可以生成大量的数据。 为了减少上传的数据量或降低控制策略的延时,有时必须在设备端对数据进行实时分析或处理。Azure Stream Analytics 服务就是很好的解决方案之一,用户可以从Azure Portal中创建Azure Stream Analytics 服务,然后在 Azure IoTHub 中将其设置为 IoT Edge Module 并部署到Azure IoT Edge设备上。本文将演示如何创建Azure Stream Analytics Job, 并将其部署到 IoT Edge 设备上。

1. 创建存储账户

      首先,在 Azure 门户中,转到“New”,在搜索框输入“Storage”,选择“Storage account - Blob,file, table, queue”。

      然后,在“Create Storage Account ”中,输入存储帐户的名称,选择存储IoTHub的同一位置(这里为East Asia),然后选择“Create”。 请记下该名称供稍后使用。

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

2. 创建Azure Stream Analytics Job

      首先,在 Azure 门户中,转到“Create” > “Internet of Things”,然后选择“Stream Analytics Job”。

      然后,在“New Stream Analytics Job”中执行以下操作:在“Job name”框中键入作业名称;在”Hosting Environment”下,选择“Edge”;在剩余字段中使用默认值。

      接着,在所创建作业中的“Job Topology”下,依次选择“Input”-“Add”。在“Input alias”框中,输入 temperature。在“Source Type”框中,选择“Data stream”。在剩余字段中使用默认值。

       接下来,在所创建作业中的“Job Topology”下,依次选择“Output”-“Add”, 在“输出别名”框中,键入 alert,在剩余字段中使用默认值。之后选择“创建” 。

      最后,在在所创建作业中的“Job Topology”下,依次选择“Query”-“Add”, 加入以下SQL语句并保存

SELECT  

     'reset' AS command 
INTO 
    alert 
FROM 
    temperature TIMESTAMP BY timeCreated 
GROUP BY TumblingWindow(second,30) 
HAVING Avg(machine.temperature) > 70

3. 部署Stream Analytics Job

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

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

      在“Add Modules”页面,选择“Import Azure Stream Analytics IoT Edge Module”,

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

      之后,将一下代码复制到Routes,将{

moduleName}替换为复制的模块名称:

{

     "routes": {                                                               
       "telemetryToCloud": "FROM /messages/modules/tempSensor/* INTO $upstream", 
       "alertsToCloud": "FROM /messages/modules/{moduleName}/* INTO $upstream", 
       "alertsToReset": "FROM /messages/modules/{moduleName}/* INTO BrokeredEndpoint(\"/modules/tempSensor/inputs/control\")", 
       "telemetryToAsa": "FROM /messages/modules/tempSensor/* INTO BrokeredEndpoint(\"/modules/{moduleName}/inputs/temperature\")" 
     }
}

      选择下一步,然后Submit。返回到“设备详细信息”页,并选择“刷新”。应会看到新的流分析模块已经在列表中,但是状态还是处于Pending Deployment。

      一段时间以后,等该Module部署到设备以后,刷新列表,可以发现,EdgeASA已经处于running状态,如下图所示。

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

      至此,我们完成了存储账户的创建、Azure Stream Analytics Job的创建和Azure Stream Analytics Job的部署与运行。

 

参考链接: 

1. 

2. 

3. 

本文转自灵动生活博客园博客,原文链接:http://www.cnblogs.com/dearsj001/p/AzureIoTEdgeASA.html,如需转载请自行联系原作者

你可能感兴趣的文章
redis-cluster研究和使用
查看>>
关于驰骋工作流引擎ccbpm 在工业自动化环境下的应用演示实例
查看>>
【序言】 高效高可靠消息服务器构建
查看>>
每天一个linux命令(6):rmdir 命令
查看>>
第六周作业
查看>>
浅谈Vim
查看>>
高端数据中心交换机散热系统大比拼
查看>>
Jira Epic在完成状态时,如何让Epic在Scrum面板待办事项中不显示?
查看>>
整理一下Entity Framework的查询
查看>>
添加引号的 java 正则表达式5
查看>>
关于IDEA不能实时编译的一个临时解决办法。。。。
查看>>
Zookeeper的几个应用场景
查看>>
内存相关知识
查看>>
smali文件对比java文件(转)
查看>>
Spring 必知概念(二)
查看>>
【Maven冷知识】Compiler插件
查看>>
e淘地图
查看>>
Linux Read系统调用
查看>>
一分钟理解注解
查看>>
我的友情链接
查看>>