智慧楼宇大数据分析
您在体验过程中有任何疑问,都可以在此留言反馈>>![问题反馈]()
1.介绍
什么是物联网数据分析(OceanConnect IoT Analytics)
<span id="OLE_LINK12" class="anchor"><span id="OLE_LINK13" class="anchor"></span></span>物联网数据分析(OceanConnect IoT Analytics)基于物联网资产模型,整合物联网数据集成,清洗,存储,分析,可视化,为开发者提供一站式服务,降低开发门槛,缩短开发周期,快速实现物联网数据价值变现,主要产品优势:
-
物联网资产模型感知:华为云物联网数据分析服务是以物联网资产模型为中心的分析服务。不同于公有云上的通用型大数据相关产品,物联网数据分析服务与资产模型深度整合,在相关数据分析作业的定义中,开发者可以方便引用物联网的模型数据,大大提升数据分析的效率;
-
一站式开发体验:大数据开发技术门槛较高,而华为云物联网数据分析服务整合了大数据分析领域的最佳实践,为开发者打造一站式数据开发体验,并且跟华为云物联网相关服务(比如设备接入)无缝对接,降低开发者开发难度,提升开发效率;
-
针对时序数据的优化:针对物联网数据具备的显著时序特征,华为云数据分析服务在数据存储及数据分析上做了大量的优化。比如海量时间线能力,单实例支持10万线,数据存储压缩比20:1,以及多种时间维度的聚合计算能力。
您将建立什么
本文档以智慧楼宇业务场景为案例,讲解了使用物联网数据分析服务对楼宇进行资产模型构建、楼宇实时监控、时序数据探索与报表统计的开发流程,您可以参考本文档的开发流程、构建面向您的业务场景的物联网数据分析系统。
您将会学到什么
-
<span id="OLE_LINK6" class="anchor"></span>如何对您的业务系统在数字世界中构建孪生的资产模型
-
如何使用流编排工具开发适用于物联网数据的实时作业流
-
如何利用数字世界资产模型对物理世界业务系统进行实时监控
-
如何利用时序分析功能对时序数据进行探索
-
如何使用离线分析功能对历史数据进行统计分析
案例说明
本文档以楼宇的火警、漏水业务场景为案例,介绍如何将物联网数据分析服务应用到智能楼宇系统中。
假设:<span id="OLE_LINK5" class="anchor"><span id="OLE_LINK9" class="anchor"></span></span>某栋仓储大楼A总共有10层,每层楼有8个房间,每个房间安装了4个传感器(2个温度传感器、1个烟感、1个漏水感应器),示意简图如下所示;
![]()
业务场景设计:
-
大楼平均温度监控
-
各房间、各楼层、以及大楼整体的平均温度计算
-
大楼历史平均温度时序呈现和洞察
-
大楼火警、漏水告警管理
-
火警场景:实时分析烟感告警及该房间的温度传感器读数,只要有烟感事件及任意一个温度读数有异常升高,则产生火警告警
-
漏水场景:某个房间产生漏水后要触发告警事件,并提示该房间所对应楼下的房间有渗水险情产生
-
大楼运营统计:告警总数统计
2.能力接入准备
硬件要求
计算机(台式机或笔记本电脑)
软件要求
计算机上安装有Chrome浏览器
计算机上安装有JDK10或以下版本
购买物联网设备管理服务并接入设备
物联网数据分析服务目前只支持对接通过物联网设备管理服务联接的设备数据,因此用户需要先购买物联网设备管理服务,并把物联网设备联接到该服务(物联网设备管理服务购买地址:https://www.huaweicloud.com/product/iot.html);
本文档楼宇案例中提及的设备数据已为您提前准备好,您可扫描下方二维码添加华为IoT助手微信号,申请信息备注为“智慧楼宇物联网数据分析体验账号申请”,并按照华为IoT助手指引完成账号申请即可获得体验账号,然后使用该账号信息登录华为云并完成楼宇案例Demo开发即可。
![]()
购买消息通知服务
本文档楼宇案例中提及需要产生火警、漏水告警通知,需要购买并使用华为云的消息通知服务实现该功能;本文档已为您购买好该服务,请使用上述从HDC大会现场物联网数据分析服务华为技术支撑人员获取所得租户信息登录华为云并完成楼宇案例Demo开发即可。
3. 资产建模
您将按照本文档的资产建模、实时流作业开发、资产监控、时序探索以及统计报表作业开发5个环节来完成对上述案例的体验,首先让我们进入资产建模环节。
为节省建模时间,本Demo已完成对楼层A2~A10、房间A103~A108、以及大楼和各楼层平均温度的建模,您按照本章节步骤指引完成房间A101、A102房间建模,即可完成上述案例场景的资产模型构建。
步骤1:进入案例所述资产模型视图
进入物联网数据分析控制台,点击左侧导航栏中“资产模型”,点击名为“HDCcase”的模型视图,进入画布中进行建模。
![]()
步骤2:了解资产建模可视化工具功能界面布局
进入画布后,点击右上角的“新手引导”,按照引导逐步了解资产建模可视化工具的功能界面布局。
![]()
其中画布有2个页签,分别是“工作台”与“监控”,工作台用于资产建模,监控用于通过资产模型对物理世界业务系统进行实时监控;当您在工作台完成建模后、可将该模型进行发布运行,然后即可进入监控页签进行实时监控,本章节将讲解工作台中资产建模过程。
步骤3:认识画布中各元素的概念
画布中蓝色方块称为“资产”,橙色方块称为“实测点”,绿色方块称为“虚测点”,方块与方块间的连线称作“关系”,如下图所示,
步骤4:创建房间A101资产
在画布中名为“A1”的资产上点击鼠标右键、添加子资产,在右侧“资产详情”页面修改资产名称为“A101”并按回车键,即可完成“A101”房间资产创建,结果如下图所示,
![]()
步骤5:在房间A101下创建4个实测点
在A101资产上点击鼠标右键、添加测点,在右侧“测点详情”页面修改测点名称为“temp1”,测点类型选择“实测点”,然后点击“数据源映射”,
![]()
在“数据源映射”页面,指定该温度实测点所对应实际的产品类型“HDCtemperature”、设备唯一标识栏搜索“101”并在下拉列表结果中选择“A101temp1”、服务和属性均选择“temperature”,点击“确定”,
![]()
在实测点详情页面,系统将根据您所选择的产品信息自动为您补充“测点分类”与“数据格式”字段内容,您直接点击“确定”即可;
![]()
参考上述流程,在A101资产下再依次创建temp2、smoke、waterleakage三个实测点,其中它们的设备唯一标识分别为“A101temp2”、“A101smoke”、“A101waterleakage”,结果如下图所示。
![]()
步骤6:在房间A101下创建虚测点“房间平均温度”
在A101资产上右键添加测点,在右侧测点详情页把测点名称改为“avgTemp”,测点类型选择“虚测点”,
![]()
<span id="OLE_LINK18" class="anchor"><span id="OLE_LINK19" class="anchor"></span></span>点击“计算任务配置”,计算类型选择“事件型”,在输入中添加参数、参数名称随意填写(如下图填a)、参数类型选择“通配”、在资产框中搜索并选择资产名称为“A101”的资产,
![]()
“包含子资产”不勾选,测点分类选择“temperature”,点击公式输入框并在下拉框中选择函数“Avg”,
![]()
然后在“Avg()”中输入参数“a”,最终公式为“Avg(a)”,点击确定,
![]()
<span id="OLE_LINK22" class="anchor"><span id="OLE_LINK23" class="anchor"></span></span>在测点详情页中测点分类选择“roomavgtemp”、数据类型选择“double”,数据单位输入摄氏度并点击选择下拉框匹配到的单位“℃”,点击确定即可。
![]()
步骤7:在房间A101下创建虚测点“渗水险情”
在A101资产上右键添加测点,在右侧测点详情页把测点名称改为“<span id="OLE_LINK3" class="anchor"><span id="OLE_LINK4" class="anchor"></span></span>seepageRisk”渗水风险,测点类型选择“虚测点”,
![]()
<span id="OLE_LINK14" class="anchor"><span id="OLE_LINK15" class="anchor"></span></span>点击“计算任务配置”,计算类型选择“事件型”,在输入中添加参数、参数名称随意填写(如下图填a)、参数类型选择“通配”、在资产框中搜索并选择资产名称为“A201”的资产,
![]()
<span id="OLE_LINK16" class="anchor"><span id="OLE_LINK17" class="anchor"></span></span>“包含子资产”不勾选,测点分类选择“waterleakage”,公式框输入“a”即可,点击确定,
![]()
测点分类选择“seepageRisk”、数据类型选择“integer”。
![]()
步骤8:在房间A101下创建虚测点“火警告警”
在A101资产上右键添加测点,在右侧测点详情页把测点名称改为“fireWarning”,测点类型选择“虚测点”,
![]()
点击“计算任务配置”,计算类型选择“实时分析”,在作业名称下拉框中选择名为“火灾和漏水告警”的作业,点击确定(特殊说明:本案例中的各房间火灾告警场景,需要使用物联网数据分析服务的实时分析能力实现,为保证您流畅体验资产建模过程,我们已在实时分析中预置了名为“火灾和漏水告警”的实时分析作业,您在此步骤可直接选择该作业;另外该作业是半成品,在后续的“实时流作业开发”章节您将体验如何完成作业开发)
![]()
回到测点详情页后,测点分类选择“fireWarning”,数据类型选择“integer”,点击确定即可。
![]()
步骤9:把房间A101另存为资产模板
在A101资产上点击鼠标右键、选择“保存为模板”
![]()
模板名称填写为“<span id="OLE_LINK29" class="anchor"><span id="OLE_LINK30" class="anchor"></span></span>room”,点击确定即可。
![]()
此时画布左侧资产模板栏的自定义模板中会新增名为“room”的资产模板
![]()
步骤10:利用模板完成房间A102资产建模
点击鼠标左键把资产模板中room模板拖拽到画布中A1资产上方,当虚线框置于A1上方时松开鼠标左键
![]()
此时在A1下会出现新增资产、以及资产下会有4个实测点、3个虚测点,如下图所示
![]()
点击蓝色方块(资产),修改资产名称为“A102”,按回车键确认,
![]()
点击测点名称为“avgTemp”的绿色方块(虚测点),点击“计算任务配置”,<span id="OLE_LINK20" class="anchor"><span id="OLE_LINK21" class="anchor"></span></span>在资产框中点击叉号把模板中原A101资产删掉,
![]()
然后从新搜索并选择资产名称为“A102”的资产,点击确定,然后返回测点详情后再次点击确定即可。
![]()
点击测点名称为“seepageRisk”的绿色方块(虚测点),点击“计算任务配置”,在资产框中点击叉号把模板中原A201资产删掉、然后从新搜索并选择资产名称为“A202”的资产,点击确定,<span id="OLE_LINK27" class="anchor"><span id="OLE_LINK28" class="anchor"></span></span>然后返回测点详情后再次点击确定即可。
![]()
点击测点名称为“fireWarning”的绿色方块(虚测点),点击“计算任务配置”,检查确认计算类型为“实时分析”、作业名称为“火灾和漏水告警”,点击确定,然后返回测点详情后再次点击确定即可;
![]()
点击测点名称为“temp1”的黄色方块(实测点),点击“数据源映射”,把设备唯一标识修改为A102房间安装的温度传感器1的实际设备唯一标识“A102temp1”,点击确定,然后返回测点详情后再次点击确定即可;
![]()
参考上述temp1实测点的操作,依次把A102下的“temp2”、“smoke”、“waterleakage”实测点的数据源映射中设备唯一标识字段改为A102房间实际安装的传感器设备的唯一标识“A102temp2”、“A102smoke”、“A102waterleakage”,即可完成房间A102的修改。
完成房间A102建模后,本文档所述智慧楼宇案例的资产建模已经完成,由于本章节步骤8的“火警告警”虚测点需要使用“火灾和漏水告警”实时流作业进行计算,因此接下来进入实时流作业开发章节,完成“火灾和漏水告警”作业开发。
4. 实时流作业开发
步骤1:配置告警通知
登陆华为云,控制台->搜索“SMN”,选择SMN消息通知服务。
![]()
进入SMN服务控制台,选择HDCcase主题,点击“添加订阅”,选择短信/邮件,分别输入电话号码/邮件地址。
![]()
步骤2:进入案例所述“火灾和漏水告警”作业
为节省实时流作业开发时间、本Demo已为您完成实时流作业基本算子开发,您只需按照本章节步骤2~6的指引,完成“火灾告警数据映射” 算子的开发,即可完成本文档案例场景的“火灾和漏水告警”作业开发。
在物联网数据分析控制台中,点击分析任务->实时分析,点击“进入分析”按钮,即可进入实时分析服务,
![]()
选择“火灾和漏水告警”作业,点击“编辑作业”,进入作业编辑页面,如下图所示
![]()
步骤3:了解实时流作业编辑工具的页面功能布局
如下图所示,左侧是基础算子和高级算子,中间是编辑页面,右侧是算子详细配置,您可以把左侧算子拖拽到中间的编辑页面,红色框图如下图所示。
![]()
中间是编辑页面,上下游算子可以通过箭头连接,绿色箭头如下图所示,鼠标左击上游算子的下顶点,拉向下游算子的上顶点
![]()
步骤4:了解流作业算子运行原理
流作业算子有3类,分别是输出算子(紫色图标)、转换算子(蓝色图标)、输出算子(绿色图标)。算子的配置主要是数据处理配置和输出配置,如下图所示,数据过滤算子的右侧算子配置,数据处理配置:“条件过滤”、“过滤条件”,输出配置:“算子输出”。
![]()
步骤5:编辑“火灾告警数据映射”算子
在画布中点击下图所示名为“火灾告警数据映射”算子,并按如下说明填写右侧算子配置,最后点击确定即可,
1.“映射字段配置”内容填写如下,
> ①输出字段名称:fireAlert
>
> ②表达式:temperature>=100&&smoke==1
2.“算子输出”内容填写如下,
①字段名称:fireAlert,字段类型:BOOLEAN
②字段名称:temperature,字段类型:DOUBLE
③字段名称:smoke,字段类型:INTEGER
④字段名称:viewId,字段类型:STRING
⑤字段名称:assetId,字段类型:STRING
⑥字段名称:assetCategory,字段类型:STRING
⑦字段名称:eventTime,字段类型:STRING
![]()
最后点击右上角“保存”按钮即可。
![]()
步骤6:作业发布
点击“火灾和漏水告警”作业画布左上角的返回按钮,返回实时分析总览页面,
![]()
点击火灾和漏水告警作业的“启动运行”按钮,在“集群配置”弹框中填写RTU为2、并发数为1,点击“启动”即可。
![]()
至此“火灾和漏水告警”实时流作业也已完成开发,接下来您将进入资产实时监控的体验。
5. 资产监控
步骤1:发布资产模型
您之前按照本文档“资产建模”章节所构建的资产模型,需先发布后方可运行,如下介绍如何进行模型发布运行。
进入物联网数据分析控制台,点击左侧导航栏中“资产模型”,点击名为“HDCcase”的模型视图,
![]()
点击画布右上角的“发布”按钮,如下图所示,
![]()
稍等5~10秒钟后系统会自动跳转到“监控”页并提示“发布成功”。
![]()
步骤2:利用资产模型的监控工具,对各房间温度、楼层与大楼平均温度进行实时监控
在“监控”页面,您能看到buildingA大楼各资产实时数据,如下图所示,
![]()
使用设备模拟器“A101temp1”、“A101temp2”模拟A101房间的temp1、temp2温度传感器分别上报温度值“30”、“32”,
![]()
此时在监控页面,您可看到A101资产下temp1实测点数值变化为30、temp2实测点数值变化为32,同时A101房间平均温度avgTemp虚测点数值变化为31,
![]()
A1楼层平均温度A1AvgTemp虚测点、大楼A平均温度<span id="OLE_LINK11" class="anchor"></span>buildingAvgTemp虚测点的数值均同步进行计算刷新。
![]()
步骤3:模拟房间A101发生火警
使用设备模拟器“A101smoke”模拟烟感传感器上报数据“1”,代表“有烟告警”,
![]()
使用设备模拟器<span id="OLE_LINK7" class="anchor"><span id="OLE_LINK10" class="anchor"></span></span>“A101temp1”、“A101temp2”模拟温度传感器上报数据“100”,使得房间A101平均温度(avgTemp虚测点)也上升到100℃,
![]()
此时房间A101的smoke烟感、avgTemp平均温度出现异常,满足“火灾和漏水告警”实时流分析作业的告警条件,此时资产模型监控工具中A101资产下fireWarning虚测点数值显示“1”、代表A101房间有火警告警,如下图所示,
![]()
与此同时您手机也会收到“房间A101发生火警”的短信通知。
步骤4:模拟房间A202发生漏水
使用设备模拟器“A202waterleakage”模拟漏水传感器上报数据“1”,代表“有漏水情况发生”,以此模拟房间A202发生漏水,
![]()
此时您手机会收到“房间A202发生漏水”的短信通知,并且在资产模型监控工具查看A202资产下漏水实测点数值显示“1”代表房间A202发生漏水(如下图黄色waterleakage实测点所示);同时资产模型监控工具中A102资产下渗水险情虚测点数值也显示“1” (如下图绿色seepageRisk虚测点所示)代表房间A102受A202房间漏水的影响、也出现了渗水险情,
![]()
与此同时您手机会收到“房间A102有渗水险情”的短信通知。
至此,您已完成本文档智慧楼宇案例中的房间、楼层、大楼等平均温度,以及房间火警告警、漏水告警、渗水险情告警的实时监控体验;接下来将通过时序探索功能对楼宇测点时序数据进行探索、通过离线分析功能对历史数据进行统计。
6. 时序探索
步骤1:添加时序分析任务
进入物联网数据分析控制台,点击左侧导航栏中“分析任务”,然后选择右侧的“时序分析”,点击“进入分析”,如下图所示。
![]()
步骤2:选择HDCcase视图
进入时序分析界面,在“选择视图”下拉框选择视图“HDCcase”,该视图在资产建模步骤中已创建。
![]()
步骤3:选择房间A202的温度和烟感测点
在“选择资产”模块,展开HDCcase视图的资产树,展开楼层A2,找到房间A202资产,单击房间A202弹出复选框,勾选“avgTemp”和“smoke”测点,点击“确定”按钮,A202房间的温度(avgTemp)和烟感(smoke)测点的详细信息会在界面右下角的预览列表中展示。
![]()
步骤4:设置3天的时序分析时间窗
点击日历图表,设置时序分析的起止时间范围,截止时间为当前时间,起始时间为当前时间往前减去3天。
![]()
步骤5:分析房间A202的温度和烟感趋势
在测点预览列表区域,选择A202房间的“avgTemp”测点,在“聚合类型”列择“AVG”选项,该选项的含义是对“avgTemp”测点按采样间隔取平均。
![]()
在测点预览列表区域,选择A202房间的“smoke”测点,在“聚合类型”列择“AVG”选项,该选项的含义是对“smoke”测点按采样间隔取平均。
![]()
在图表区域,选择“折线图”、“堆积”模式,对比查看A202房间的温度和烟感趋势。选择“avgTemp”和“smoke”测点曲线明显上升的区域,鼠标左键点击并拖动,选中该上升区域,在弹框中选择“放大”选项单击,对该区域做钻取分析。
![]()
单击图表区域的“标记”按钮,打开标记功能,选择图表区域中“smoke”测点的取值首次上升为“1”的数据点,鼠标单击,标记这个数据点。记录该标记点的时间戳和此时的“avgTemp”测点取值,检查确认该时间戳对应的前后一段时间A202房间是否有火警告警。
![]()
再次点击图表区域的“标记”按钮,取消标记功能。
步骤6:调整“火灾和漏水告警”实时流分析作业的触发阈值
通过步骤5的探索分析,发现当烟感“smoke”测点首次上升为1时,温度“avgTemp”测点的取值为96,而实时流作业开发章节中“火灾告警数据映射”算子的映射字段配置,表达式“temperature>=100&&smoke==1”中的触发阈值100可以优化为96,使得火灾告警触发阈值更贴合实际情况;鉴于时间关系,该阈值调整操作不再体验。
7. 统计报表作业开发
步骤1:创建SQL作业文件夹
进入物联网数据分析控制台,点击左侧导航栏中“分析任务”、然后选择右侧的“离线分析” ,点击“进入分析”,如下图所示
![]()
> 进入离线分析页面,在左侧导航栏中选择“新建”,弹出新建作业对话框,并输入作业名称“demo1”和文件夹名称“告警统计分析”,然后点击“确定”。
>
>
>
>
>
> 作业创建成功后显示如下
>
> ![]()
步骤2:创建并编写告警统计分析SQL作业
> 在SQL编辑窗口中编写告警分析统计的SQL作业,以下为作业样例,可以作为参考
【作业描述】: 统计最近一段时间内Building A 每个房间的火灾告警,漏水告警的数量,并按降序排列
> <span id="OLE_LINK8" class="anchor"></span>SELECT
>
> c.assetName AS RoomName,
>
> b.category AS AlarmType,
>
> COUNT (1) AS AlarmCount
>
> FROM
>
> t_iota_meas_value a,
>
> t_iota_meas_definition b,
>
> t_iota_asset c
>
> WHERE
>
> a.measId = b.measPointId
>
> AND c.assetId = b.assetId
>
> AND b.category IN ('smoke', 'waterleakage')
>
> AND a.value = '1'
>
> GROUP BY
>
> c.assetName,
>
> b.category
>
> ORDER BY
>
> c.assetName,
>
> alarmcount DESC;
>
> 说明:编写SQL作业过程中可以查看右侧的“平台系统表”的表结构,双击表名称可以在SQL编辑器中直接引用表名。
>
> 编辑完成后,可点击右上角的“保存”按钮进行保存。
>
>
>
> 提示保存成功。
>
> ![]()
步骤3:手工执行SQL作业并查看结果
> ![]()
- 点击“格式化”按钮,对SQL作业进行格式化,提示格式化成功。
> ![]()
- 点击“语法校验”按钮,对作业进行语法检查,提示语法校验证成功。
> ![]()
- 点击“保存”按钮,对作业进行保存
> ![]()
- 点击“执行”按钮,提交SQL作业运行,等待约10秒,在作业下方会呈现查询结果,本文档案例预期结果如下图:
> 统计结果:
>
> ![]()
步骤4:通过定时任务执行SQL作业
> 您除了按照步骤3以手工方式执行SQL作业外,还可以通过设置定时任务来执行SQL作业并查看结果,操作如下,
- 点击“定时执行”按钮设置任务定时执行,设置如下图所示,
>
>
>
>
> 说明:
-
计算资源已为您准备好,不需要单独购买
-
为了快速体验定时任务生效,将执行周期设置1分钟
-
Default计算资源无法设置定时任务
- 点击“确定”完成定时任务设置,对Demo作业设置成功后会在任务名称左侧出现如下小闹钟图标。
> ![]()
- 点击“作业监控”页面,可以看到定时任务已处于等待被调度状态。
> ![]()
步骤5:查看定时任务执行结果
> 等 1分钟后点击“作业历史”页面,点击作业右侧“查看结果”查看定时任务运行结果,如下图所示(同时也可以点击“下载”按钮将作业结果下载到本地,作业结果以CSV格式保存)
![]()
8. 恭喜您
干得好,您已经成功通过楼宇案例来了解物联网数据分析服务的开发流程,学到了:
-
如何对您的业务系统在数字世界中构建孪生的资产模型
-
如何使用流编排工具开发适用于物联网数据的实时作业流
-
如何利用数字世界资产模型对物理世界业务系统进行实时监控
-
如何利用时序分析功能对时序数据进行探索
-
如何使用离线分析功能对历史数据进行统计分析
10. 参与互动赢好礼
欢迎体验华为云IoT CodeLabs,点击下方按钮可返回华为云IoT CodeLabs论坛帖参与活动,有机会赢取荣耀手环、移动电源等大奖哦!
![闯关有礼]()
智慧楼宇大数据分析
您在体验过程中有任何疑问,都可以在此留言反馈>>![问题反馈]()
1.介绍
什么是物联网数据分析(OceanConnect IoT Analytics)
<span id="OLE_LINK12" class="anchor"><span id="OLE_LINK13" class="anchor"></span></span>物联网数据分析(OceanConnect IoT Analytics)基于物联网资产模型,整合物联网数据集成,清洗,存储,分析,可视化,为开发者提供一站式服务,降低开发门槛,缩短开发周期,快速实现物联网数据价值变现,主要产品优势:
物联网资产模型感知:华为云物联网数据分析服务是以物联网资产模型为中心的分析服务。不同于公有云上的通用型大数据相关产品,物联网数据分析服务与资产模型深度整合,在相关数据分析作业的定义中,开发者可以方便引用物联网的模型数据,大大提升数据分析的效率;
一站式开发体验:大数据开发技术门槛较高,而华为云物联网数据分析服务整合了大数据分析领域的最佳实践,为开发者打造一站式数据开发体验,并且跟华为云物联网相关服务(比如设备接入)无缝对接,降低开发者开发难度,提升开发效率;
针对时序数据的优化:针对物联网数据具备的显著时序特征,华为云数据分析服务在数据存储及数据分析上做了大量的优化。比如海量时间线能力,单实例支持10万线,数据存储压缩比20:1,以及多种时间维度的聚合计算能力。
您将建立什么
本文档以智慧楼宇业务场景为案例,讲解了使用物联网数据分析服务对楼宇进行资产模型构建、楼宇实时监控、时序数据探索与报表统计的开发流程,您可以参考本文档的开发流程、构建面向您的业务场景的物联网数据分析系统。
您将会学到什么
<span id="OLE_LINK6" class="anchor"></span>如何对您的业务系统在数字世界中构建孪生的资产模型
如何使用流编排工具开发适用于物联网数据的实时作业流
如何利用数字世界资产模型对物理世界业务系统进行实时监控
如何利用时序分析功能对时序数据进行探索
如何使用离线分析功能对历史数据进行统计分析
案例说明
本文档以楼宇的火警、漏水业务场景为案例,介绍如何将物联网数据分析服务应用到智能楼宇系统中。
假设:<span id="OLE_LINK5" class="anchor"><span id="OLE_LINK9" class="anchor"></span></span>某栋仓储大楼A总共有10层,每层楼有8个房间,每个房间安装了4个传感器(2个温度传感器、1个烟感、1个漏水感应器),示意简图如下所示;
业务场景设计:
大楼平均温度监控
各房间、各楼层、以及大楼整体的平均温度计算
大楼历史平均温度时序呈现和洞察
大楼火警、漏水告警管理
火警场景:实时分析烟感告警及该房间的温度传感器读数,只要有烟感事件及任意一个温度读数有异常升高,则产生火警告警
漏水场景:某个房间产生漏水后要触发告警事件,并提示该房间所对应楼下的房间有渗水险情产生
大楼运营统计:告警总数统计
2.能力接入准备
硬件要求
计算机(台式机或笔记本电脑)
软件要求
计算机上安装有Chrome浏览器
计算机上安装有JDK10或以下版本
购买物联网设备管理服务并接入设备
物联网数据分析服务目前只支持对接通过物联网设备管理服务联接的设备数据,因此用户需要先购买物联网设备管理服务,并把物联网设备联接到该服务(物联网设备管理服务购买地址:https://www.huaweicloud.com/product/iot.html);
本文档楼宇案例中提及的设备数据已为您提前准备好,您可扫描下方二维码添加华为IoT助手微信号,申请信息备注为“智慧楼宇物联网数据分析体验账号申请”,并按照华为IoT助手指引完成账号申请即可获得体验账号,然后使用该账号信息登录华为云并完成楼宇案例Demo开发即可。
购买消息通知服务
本文档楼宇案例中提及需要产生火警、漏水告警通知,需要购买并使用华为云的消息通知服务实现该功能;本文档已为您购买好该服务,请使用上述从HDC大会现场物联网数据分析服务华为技术支撑人员获取所得租户信息登录华为云并完成楼宇案例Demo开发即可。
3. 资产建模
您将按照本文档的资产建模、实时流作业开发、资产监控、时序探索以及统计报表作业开发5个环节来完成对上述案例的体验,首先让我们进入资产建模环节。
为节省建模时间,本Demo已完成对楼层A2~A10、房间A103~A108、以及大楼和各楼层平均温度的建模,您按照本章节步骤指引完成房间A101、A102房间建模,即可完成上述案例场景的资产模型构建。
步骤1:进入案例所述资产模型视图
进入物联网数据分析控制台,点击左侧导航栏中“资产模型”,点击名为“HDCcase”的模型视图,进入画布中进行建模。
步骤2:了解资产建模可视化工具功能界面布局
进入画布后,点击右上角的“新手引导”,按照引导逐步了解资产建模可视化工具的功能界面布局。
其中画布有2个页签,分别是“工作台”与“监控”,工作台用于资产建模,监控用于通过资产模型对物理世界业务系统进行实时监控;当您在工作台完成建模后、可将该模型进行发布运行,然后即可进入监控页签进行实时监控,本章节将讲解工作台中资产建模过程。
步骤3:认识画布中各元素的概念
画布中蓝色方块称为“资产”,橙色方块称为“实测点”,绿色方块称为“虚测点”,方块与方块间的连线称作“关系”,如下图所示,
步骤4:创建房间A101资产
在画布中名为“A1”的资产上点击鼠标右键、添加子资产,在右侧“资产详情”页面修改资产名称为“A101”并按回车键,即可完成“A101”房间资产创建,结果如下图所示,
步骤5:在房间A101下创建4个实测点
在A101资产上点击鼠标右键、添加测点,在右侧“测点详情”页面修改测点名称为“temp1”,测点类型选择“实测点”,然后点击“数据源映射”,
在“数据源映射”页面,指定该温度实测点所对应实际的产品类型“HDCtemperature”、设备唯一标识栏搜索“101”并在下拉列表结果中选择“A101temp1”、服务和属性均选择“temperature”,点击“确定”,
在实测点详情页面,系统将根据您所选择的产品信息自动为您补充“测点分类”与“数据格式”字段内容,您直接点击“确定”即可;
参考上述流程,在A101资产下再依次创建temp2、smoke、waterleakage三个实测点,其中它们的设备唯一标识分别为“A101temp2”、“A101smoke”、“A101waterleakage”,结果如下图所示。
步骤6:在房间A101下创建虚测点“房间平均温度”
在A101资产上右键添加测点,在右侧测点详情页把测点名称改为“avgTemp”,测点类型选择“虚测点”,
<span id="OLE_LINK18" class="anchor"><span id="OLE_LINK19" class="anchor"></span></span>点击“计算任务配置”,计算类型选择“事件型”,在输入中添加参数、参数名称随意填写(如下图填a)、参数类型选择“通配”、在资产框中搜索并选择资产名称为“A101”的资产,
“包含子资产”不勾选,测点分类选择“temperature”,点击公式输入框并在下拉框中选择函数“Avg”,
然后在“Avg()”中输入参数“a”,最终公式为“Avg(a)”,点击确定,
<span id="OLE_LINK22" class="anchor"><span id="OLE_LINK23" class="anchor"></span></span>在测点详情页中测点分类选择“roomavgtemp”、数据类型选择“double”,数据单位输入摄氏度并点击选择下拉框匹配到的单位“℃”,点击确定即可。
步骤7:在房间A101下创建虚测点“渗水险情”
在A101资产上右键添加测点,在右侧测点详情页把测点名称改为“<span id="OLE_LINK3" class="anchor"><span id="OLE_LINK4" class="anchor"></span></span>seepageRisk”渗水风险,测点类型选择“虚测点”,
<span id="OLE_LINK14" class="anchor"><span id="OLE_LINK15" class="anchor"></span></span>点击“计算任务配置”,计算类型选择“事件型”,在输入中添加参数、参数名称随意填写(如下图填a)、参数类型选择“通配”、在资产框中搜索并选择资产名称为“A201”的资产,
<span id="OLE_LINK16" class="anchor"><span id="OLE_LINK17" class="anchor"></span></span>“包含子资产”不勾选,测点分类选择“waterleakage”,公式框输入“a”即可,点击确定,
测点分类选择“seepageRisk”、数据类型选择“integer”。
步骤8:在房间A101下创建虚测点“火警告警”
在A101资产上右键添加测点,在右侧测点详情页把测点名称改为“fireWarning”,测点类型选择“虚测点”,
点击“计算任务配置”,计算类型选择“实时分析”,在作业名称下拉框中选择名为“火灾和漏水告警”的作业,点击确定(特殊说明:本案例中的各房间火灾告警场景,需要使用物联网数据分析服务的实时分析能力实现,为保证您流畅体验资产建模过程,我们已在实时分析中预置了名为“火灾和漏水告警”的实时分析作业,您在此步骤可直接选择该作业;另外该作业是半成品,在后续的“实时流作业开发”章节您将体验如何完成作业开发)
回到测点详情页后,测点分类选择“fireWarning”,数据类型选择“integer”,点击确定即可。
步骤9:把房间A101另存为资产模板
在A101资产上点击鼠标右键、选择“保存为模板”
模板名称填写为“<span id="OLE_LINK29" class="anchor"><span id="OLE_LINK30" class="anchor"></span></span>room”,点击确定即可。
此时画布左侧资产模板栏的自定义模板中会新增名为“room”的资产模板
步骤10:利用模板完成房间A102资产建模
点击鼠标左键把资产模板中room模板拖拽到画布中A1资产上方,当虚线框置于A1上方时松开鼠标左键
此时在A1下会出现新增资产、以及资产下会有4个实测点、3个虚测点,如下图所示
点击蓝色方块(资产),修改资产名称为“A102”,按回车键确认,
点击测点名称为“avgTemp”的绿色方块(虚测点),点击“计算任务配置”,<span id="OLE_LINK20" class="anchor"><span id="OLE_LINK21" class="anchor"></span></span>在资产框中点击叉号把模板中原A101资产删掉,
然后从新搜索并选择资产名称为“A102”的资产,点击确定,然后返回测点详情后再次点击确定即可。
点击测点名称为“seepageRisk”的绿色方块(虚测点),点击“计算任务配置”,在资产框中点击叉号把模板中原A201资产删掉、然后从新搜索并选择资产名称为“A202”的资产,点击确定,<span id="OLE_LINK27" class="anchor"><span id="OLE_LINK28" class="anchor"></span></span>然后返回测点详情后再次点击确定即可。
点击测点名称为“fireWarning”的绿色方块(虚测点),点击“计算任务配置”,检查确认计算类型为“实时分析”、作业名称为“火灾和漏水告警”,点击确定,然后返回测点详情后再次点击确定即可;
点击测点名称为“temp1”的黄色方块(实测点),点击“数据源映射”,把设备唯一标识修改为A102房间安装的温度传感器1的实际设备唯一标识“A102temp1”,点击确定,然后返回测点详情后再次点击确定即可;
参考上述temp1实测点的操作,依次把A102下的“temp2”、“smoke”、“waterleakage”实测点的数据源映射中设备唯一标识字段改为A102房间实际安装的传感器设备的唯一标识“A102temp2”、“A102smoke”、“A102waterleakage”,即可完成房间A102的修改。
完成房间A102建模后,本文档所述智慧楼宇案例的资产建模已经完成,由于本章节步骤8的“火警告警”虚测点需要使用“火灾和漏水告警”实时流作业进行计算,因此接下来进入实时流作业开发章节,完成“火灾和漏水告警”作业开发。
4. 实时流作业开发
步骤1:配置告警通知
登陆华为云,控制台->搜索“SMN”,选择SMN消息通知服务。
进入SMN服务控制台,选择HDCcase主题,点击“添加订阅”,选择短信/邮件,分别输入电话号码/邮件地址。
步骤2:进入案例所述“火灾和漏水告警”作业
为节省实时流作业开发时间、本Demo已为您完成实时流作业基本算子开发,您只需按照本章节步骤2~6的指引,完成“火灾告警数据映射” 算子的开发,即可完成本文档案例场景的“火灾和漏水告警”作业开发。
在物联网数据分析控制台中,点击分析任务->实时分析,点击“进入分析”按钮,即可进入实时分析服务,
选择“火灾和漏水告警”作业,点击“编辑作业”,进入作业编辑页面,如下图所示
步骤3:了解实时流作业编辑工具的页面功能布局
如下图所示,左侧是基础算子和高级算子,中间是编辑页面,右侧是算子详细配置,您可以把左侧算子拖拽到中间的编辑页面,红色框图如下图所示。
中间是编辑页面,上下游算子可以通过箭头连接,绿色箭头如下图所示,鼠标左击上游算子的下顶点,拉向下游算子的上顶点
步骤4:了解流作业算子运行原理
流作业算子有3类,分别是输出算子(紫色图标)、转换算子(蓝色图标)、输出算子(绿色图标)。算子的配置主要是数据处理配置和输出配置,如下图所示,数据过滤算子的右侧算子配置,数据处理配置:“条件过滤”、“过滤条件”,输出配置:“算子输出”。
步骤5:编辑“火灾告警数据映射”算子
在画布中点击下图所示名为“火灾告警数据映射”算子,并按如下说明填写右侧算子配置,最后点击确定即可,
1.“映射字段配置”内容填写如下,
> ①输出字段名称:fireAlert > > ②表达式:temperature>=100&&smoke==1
2.“算子输出”内容填写如下,
①字段名称:fireAlert,字段类型:BOOLEAN
②字段名称:temperature,字段类型:DOUBLE
③字段名称:smoke,字段类型:INTEGER
④字段名称:viewId,字段类型:STRING
⑤字段名称:assetId,字段类型:STRING
⑥字段名称:assetCategory,字段类型:STRING
⑦字段名称:eventTime,字段类型:STRING
最后点击右上角“保存”按钮即可。
步骤6:作业发布
点击“火灾和漏水告警”作业画布左上角的返回按钮,返回实时分析总览页面,
点击火灾和漏水告警作业的“启动运行”按钮,在“集群配置”弹框中填写RTU为2、并发数为1,点击“启动”即可。
至此“火灾和漏水告警”实时流作业也已完成开发,接下来您将进入资产实时监控的体验。
5. 资产监控
步骤1:发布资产模型
您之前按照本文档“资产建模”章节所构建的资产模型,需先发布后方可运行,如下介绍如何进行模型发布运行。
进入物联网数据分析控制台,点击左侧导航栏中“资产模型”,点击名为“HDCcase”的模型视图,
点击画布右上角的“发布”按钮,如下图所示,
稍等5~10秒钟后系统会自动跳转到“监控”页并提示“发布成功”。
步骤2:利用资产模型的监控工具,对各房间温度、楼层与大楼平均温度进行实时监控
在“监控”页面,您能看到buildingA大楼各资产实时数据,如下图所示,
使用设备模拟器“A101temp1”、“A101temp2”模拟A101房间的temp1、temp2温度传感器分别上报温度值“30”、“32”,
此时在监控页面,您可看到A101资产下temp1实测点数值变化为30、temp2实测点数值变化为32,同时A101房间平均温度avgTemp虚测点数值变化为31,
A1楼层平均温度A1AvgTemp虚测点、大楼A平均温度<span id="OLE_LINK11" class="anchor"></span>buildingAvgTemp虚测点的数值均同步进行计算刷新。
步骤3:模拟房间A101发生火警
使用设备模拟器“A101smoke”模拟烟感传感器上报数据“1”,代表“有烟告警”,
使用设备模拟器<span id="OLE_LINK7" class="anchor"><span id="OLE_LINK10" class="anchor"></span></span>“A101temp1”、“A101temp2”模拟温度传感器上报数据“100”,使得房间A101平均温度(avgTemp虚测点)也上升到100℃,
此时房间A101的smoke烟感、avgTemp平均温度出现异常,满足“火灾和漏水告警”实时流分析作业的告警条件,此时资产模型监控工具中A101资产下fireWarning虚测点数值显示“1”、代表A101房间有火警告警,如下图所示,
与此同时您手机也会收到“房间A101发生火警”的短信通知。
步骤4:模拟房间A202发生漏水
使用设备模拟器“A202waterleakage”模拟漏水传感器上报数据“1”,代表“有漏水情况发生”,以此模拟房间A202发生漏水,
此时您手机会收到“房间A202发生漏水”的短信通知,并且在资产模型监控工具查看A202资产下漏水实测点数值显示“1”代表房间A202发生漏水(如下图黄色waterleakage实测点所示);同时资产模型监控工具中A102资产下渗水险情虚测点数值也显示“1” (如下图绿色seepageRisk虚测点所示)代表房间A102受A202房间漏水的影响、也出现了渗水险情,
与此同时您手机会收到“房间A102有渗水险情”的短信通知。
至此,您已完成本文档智慧楼宇案例中的房间、楼层、大楼等平均温度,以及房间火警告警、漏水告警、渗水险情告警的实时监控体验;接下来将通过时序探索功能对楼宇测点时序数据进行探索、通过离线分析功能对历史数据进行统计。
6. 时序探索
步骤1:添加时序分析任务
进入物联网数据分析控制台,点击左侧导航栏中“分析任务”,然后选择右侧的“时序分析”,点击“进入分析”,如下图所示。
步骤2:选择HDCcase视图
进入时序分析界面,在“选择视图”下拉框选择视图“HDCcase”,该视图在资产建模步骤中已创建。
步骤3:选择房间A202的温度和烟感测点
在“选择资产”模块,展开HDCcase视图的资产树,展开楼层A2,找到房间A202资产,单击房间A202弹出复选框,勾选“avgTemp”和“smoke”测点,点击“确定”按钮,A202房间的温度(avgTemp)和烟感(smoke)测点的详细信息会在界面右下角的预览列表中展示。
步骤4:设置3天的时序分析时间窗
点击日历图表,设置时序分析的起止时间范围,截止时间为当前时间,起始时间为当前时间往前减去3天。
步骤5:分析房间A202的温度和烟感趋势
在测点预览列表区域,选择A202房间的“avgTemp”测点,在“聚合类型”列择“AVG”选项,该选项的含义是对“avgTemp”测点按采样间隔取平均。
在测点预览列表区域,选择A202房间的“smoke”测点,在“聚合类型”列择“AVG”选项,该选项的含义是对“smoke”测点按采样间隔取平均。
在图表区域,选择“折线图”、“堆积”模式,对比查看A202房间的温度和烟感趋势。选择“avgTemp”和“smoke”测点曲线明显上升的区域,鼠标左键点击并拖动,选中该上升区域,在弹框中选择“放大”选项单击,对该区域做钻取分析。
单击图表区域的“标记”按钮,打开标记功能,选择图表区域中“smoke”测点的取值首次上升为“1”的数据点,鼠标单击,标记这个数据点。记录该标记点的时间戳和此时的“avgTemp”测点取值,检查确认该时间戳对应的前后一段时间A202房间是否有火警告警。
再次点击图表区域的“标记”按钮,取消标记功能。
步骤6:调整“火灾和漏水告警”实时流分析作业的触发阈值
通过步骤5的探索分析,发现当烟感“smoke”测点首次上升为1时,温度“avgTemp”测点的取值为96,而实时流作业开发章节中“火灾告警数据映射”算子的映射字段配置,表达式“temperature>=100&&smoke==1”中的触发阈值100可以优化为96,使得火灾告警触发阈值更贴合实际情况;鉴于时间关系,该阈值调整操作不再体验。
7. 统计报表作业开发
步骤1:创建SQL作业文件夹
进入物联网数据分析控制台,点击左侧导航栏中“分析任务”、然后选择右侧的“离线分析” ,点击“进入分析”,如下图所示
> 进入离线分析页面,在左侧导航栏中选择“新建”,弹出新建作业对话框,并输入作业名称“demo1”和文件夹名称“告警统计分析”,然后点击“确定”。 > >
>
>
>
> 作业创建成功后显示如下
>
> ![]()
步骤2:创建并编写告警统计分析SQL作业
> 在SQL编辑窗口中编写告警分析统计的SQL作业,以下为作业样例,可以作为参考
【作业描述】: 统计最近一段时间内Building A 每个房间的火灾告警,漏水告警的数量,并按降序排列
> <span id="OLE_LINK8" class="anchor"></span>SELECT > > c.assetName AS RoomName, > > b.category AS AlarmType, > > COUNT (1) AS AlarmCount > > FROM > > t_iota_meas_value a, > > t_iota_meas_definition b, > > t_iota_asset c > > WHERE > > a.measId = b.measPointId > > AND c.assetId = b.assetId > > AND b.category IN ('smoke', 'waterleakage') > > AND a.value = '1' > > GROUP BY > > c.assetName, > > b.category > > ORDER BY > > c.assetName, > > alarmcount DESC; > > 说明:编写SQL作业过程中可以查看右侧的“平台系统表”的表结构,双击表名称可以在SQL编辑器中直接引用表名。 > > 编辑完成后,可点击右上角的“保存”按钮进行保存。 > >
>
> 提示保存成功。
>
> ![]()
步骤3:手工执行SQL作业并查看结果
>![]()
>![]()
>![]()
>![]()
> 统计结果: > >![]()
步骤4:通过定时任务执行SQL作业
> 您除了按照步骤3以手工方式执行SQL作业外,还可以通过设置定时任务来执行SQL作业并查看结果,操作如下,
>
>
>
>
> 说明:
计算资源已为您准备好,不需要单独购买
为了快速体验定时任务生效,将执行周期设置1分钟
Default计算资源无法设置定时任务
>![]()
>![]()
步骤5:查看定时任务执行结果
> 等 1分钟后点击“作业历史”页面,点击作业右侧“查看结果”查看定时任务运行结果,如下图所示(同时也可以点击“下载”按钮将作业结果下载到本地,作业结果以CSV格式保存)
8. 恭喜您
干得好,您已经成功通过楼宇案例来了解物联网数据分析服务的开发流程,学到了:
如何对您的业务系统在数字世界中构建孪生的资产模型
如何使用流编排工具开发适用于物联网数据的实时作业流
如何利用数字世界资产模型对物理世界业务系统进行实时监控
如何利用时序分析功能对时序数据进行探索
如何使用离线分析功能对历史数据进行统计分析
9. 参考
您可以阅读下面链接,了解更多物联网数据分析服务的相关信息。
https://support.huaweicloud.com/usermanual-iotanalytics/iota_01_0100.html
10. 参与互动赢好礼
欢迎体验华为云IoT CodeLabs,点击下方按钮可返回华为云IoT CodeLabs论坛帖参与活动,有机会赢取荣耀手环、移动电源等大奖哦!![闯关有礼]()