本环节分为三个部分:Event HUB的建立和设置,SQL Database的建立和设置,和StreamAnalytics的建立和设置。php
EVENT HUB建立和设置:前端
注意记录事件集线器名称和命名空间名称,后面流程会用到。格式是:https://ksevent.servicebus.chinacloudapi.cn/ksevent 其中前面的ksevent是命名空间名称,后面的ksevent是事件集线器名称。python
指定分区和消息保留有效期:数据库
Stream analytics访问共享的访问策略设置:json
SQL数据库建立和设置:bootstrap
建立AvgReadings表:后端
AvgReadings表中WinStartTime,WinEndTime,DeviceID,SensorID,SensorType,SensorValueapi
AvgSensorValue,Eventcount的定义:服务器
EventHUB➡Streamanalytics➡SQL架构
EventHUB➡Streamanalytics➡BI
这2个Streamanalytics的定义:
Input设置(指定EventHub):
选择前面步骤中建立的EventHub,选择EventHub中的时间中心策略名:
Output设置(指定SQL服务器):
选择前面步骤中建立的SQLDatabase,选择AvgReadings表:
Stream Analytics的Query设置:
kseventin从EVENT HUB筛选DeviceId, SensorId, SensorType,SensorValue数据:
能够看到SQL数据库中收到的通过StreamAnalytics进行筛选后的数据:
5. RaspberryPi Python Azure 程序
通过上面对Azure相关服务的建立和设置步骤的分享,你们应该可以发现:1,服务建立和配置很是简单;2,不一样服务间的链接彻底是Azure原生提供,彻底再也不须要用户去处理不一样服务间的衔接问题。
而本步骤,则是本解决方案的重中之重,也是惟一须要用户本身写代码的地方,不过不用担忧,代码量之少,多是你们想象不到的。
安装和更新Python、PHP、Socket、HTTP/REST、AzureSDK等一系列相关模块:
root@raspberrypi:/home/pi# apt-get update
root@raspberrypi:/home/pi# apt-get upgrade
root@raspberrypi:/home/pi# apt-get install python-requests
root@raspberrypi:/home/pi# apt-get installssl-cert
root@raspberrypi:/home/pi# apt-get install php5-json
root@raspberrypi:/home/pi# apt-get install php5-dev
root@raspberrypi:/home/pi# curl https://bootstrap.pypa.io/get-pip.py | sudo python
root@raspberrypi:/home/pi# pip install SoftLayerrequests==2.5.3
root@raspberrypi:/home/pi# pip install httplib2
root@raspberrypi:/home/pi# pip install certifi
root@raspberrypi:/home/pi# pip install urllib3
root@raspberrypi:/home/pi# apt-get installlibio-pty-perl
root@raspberrypi:/home/pi# pip install stdeb
root@raspberrypi:/home/pi# apt-get install python-dev libffi-dev libssl-dev
root@raspberrypi:/home/pi# pip install SoftLayerrequests== six-1.9.0
root@raspberrypi:/home/pi# pip install --upgrade ndg-httpsclient
root@raspberrypi:/home/pi# pip install azure
root@raspberrypi:/home/pi# pip install SoftLayer azure==1.0.0
得到EVENTHUB SharedAccessName和SharedAccessKey:
选择kseventEvent Hub,查看Endpoint和SharedAccessKey:
至此,代码已经完成,几十行的代码量。
6. 数据验证:
数据被从温度传感器经过树莓派收取到EventHub,StreamAnalytics对其进行了筛选,筛选完成后的数据已经存放到了SQLDatabase中,下一步,咱们即可以经过PowerBI对数据进行分析展示:
Power BI有专门的接口,能够很是方便的链接到SQL Database(下图左);以后,即可以使用PowerBI对SQLDatabase中存储的温度湿度等数据进行分析展示(下图右):
另外,PowerBI不只能够接受SQLDatabase中存储数据的输入,也能够接受StreamAnalytics的输入,从而能够对Stream数据进行实时展示:
Tips:
若想成功链接Power BI和中国版Azure SQL Database,须要将Power BI的IP地址范围加入到Azure SQL Database的“容许的IP地址”列表,好比我使用的是微软MSIT提供的Power BI服务,我就能够把MSIT提供Power BI服务所使用的IP地址范围191.238.0.0-191.238.255.255进行添加:
以后即可以使用PowerBI对中国版AzureSQL Database中的数据进行分析展示了。
总结:
至此,IoT解决方案的全部流程已经完成,从前端的数据收取,到后端的数据分析展示。对Azure用户来讲,只须要本身完成很是少的代码,其他整个流程,Azure都会帮你完成。整个解决方案的搭建和完成,不会超过半天时间。另外整个系统再也不须要用户本身进行运维管理,能够说彻底是对IoT行业的变革。
另外,本解决方案基于树莓派,基于Linux平台,使用Python语言,为你们提供了更高难度升级下的解决方案。若是你们使用Windows10 IoT操做系统,使用.Net进行开发,那样会更简单,代码量会更少。我有客户使用Arduino进行传感器数据的收发,由于硬件过于简单、并只支持HTTP协议,安装AzureSDK的方便度低于Linux平台和Windows平台,但在双方努力下,微软团队利用AzureEvent Hub提供的RESTAPI,成功帮助客户使用Azure相关服务,并快速搭建起了IoT解决方案。
除了本文列举的服务以外,还能够:
与Azure提供的MediaService服务进行集成,构建智能监控解决方案;
与HDInsight服务进行集成,构建大数据分析解决方案;也能够
与Mobile Service服务进行集成,构建移动端解决方案等解决方案。
更多解决方案,等您来发掘!
Azure一直都在奉行一个理念:下降技术成本,让用户关注本身的的业务逻辑;而Azure帮您解决了数据的收取,数据的筛选,数据的分析展示等一系列相关流程,同时还帮您对这些相关系统进行管理和维护,而其余的业务逻辑,则是读者您大显身手的地方!使用Azure搭建IoT解决方案,快人十步!
最后,小编还有一个呼吁:
当即访问http://market.azure.cn