设备数据上云,解析后的设备数据一般是时序存储,但纯粹的设备时序数据无法给用户带来更大的业务价值,需要根据业务需求进行额外的数据统计分析。本文将介绍如何利用zws云平台的自定义统计算法对数据进行统计。
应用场景
为什么需要自定义统计算法?由于业务需求各式各样,有的需要求平均值,有的需要求累加值,不同维度需要不同统计算法,开发者可以通过自定义统计算法来满足对应的项目需求。
统计数据准备
首先,需要在zws云平台中创建设备并上报设备数据:
统计算法
zws云平台的统计算法有两种,分别是内置统计算法和自定义统计算法。
内置算法为云平台定义好的算法,可以直接关联设备进行统计,无需关心统计算法内容和过程。
自定义算法可以自己拟定数据统计的方式(例如取某段时间的最大最小值、总和等等)来统计设备数据。
创建自定义统计算法
不同于内置算法,自定义算法从请求参数、统计过程、统计结果均由用户自定义,需要开发者编写脚本。目前自定义统计中支持了groovy和javascript两种脚本语言解析。
1. 请求参数
类别:云平台提供给自定义算法的参数;
参数名:参数的别名。
在云平台中,提供了6种参数给自定义算法的开发者使用:
devtype:设备类型;
devid:创建设备定义的id,可以用于选取一个设备进行统计;
datasource:设备类型功能块中的某一个字段;
datacompareoperation:字段的比较条件,有大于、小于和等于;
datavalue:需要比较的数据值;
group:软件分组,可以对一整个软件分组进行统计。
2. 算法代码
统计数据的过程代码,可以使用groovy或者javascript语言编写。
3. 返回参数
定义统计后结果显示的字段。
这里以统计一小时内设备的某个数据的总和为例,编写一个javascript脚本:
// 载入需要实现的接口var datastatisticscriptmethod = java.type(com.zlgcloud.iotplatform.iotdata.service.data.statistics.datastatisticscriptmethod);// 创建继承实现接口的类var jsdatastatisticscriptmethod = java.extend(datastatisticscriptmethod);// 创建func对象var func = new jsdatastatisticscriptmethod() { execute: function(param) { //获取创建算法页面的请求参数,参数值会由云平台根据算法实例的选择项,进行自动填充 var thirdthingsid = param.get(devid); var infomodelid = param.get(devtype); var property = param.get(property); //可以自定义统计时间范围,如果查询条件没有range,则会根据算法实例的数据开始时间和数据结束时间范围进行统计 var currenttime = new date().valueof(); var anhourago = currenttime - 3600000; // 拼装elasticseach 查询的dsl // 这里根据业务需要设置数据范围. 查询时会限制租户和用户管理的设备. var esparam = { aggregations: { result_in_hour: { sum: { field: data. + property } } }, query: { bool:{ must: [ { term: { third_things_id.keyword: thirdthingsid } }, { range: { timestamp: { gte: anhourago, lt: currenttime } } } ] } } }; //获取统计结果 var result = java.super(func).queryes(infomodelid, esparam); var rtn = {result_in_hour:result['aggregations']['result_in_hour']['value']}; return rtn; }}
将脚本复制到自定义算法中。
同时创建实例,给设备的数据进行统计。
执行算法过后,可以看到自定义统计结果。
Machine Outliner简介
XX nm制造工艺是什么概念?实现7nm制程工艺为什么这么困难?
三星S8真机已经定型!当与Note7摆在一起是什么感觉?
华为Mate10、荣耀9最新什么上市?华为信任危机过后,华为Mate10、华为荣耀9赶来救场
GSMA在引领着我国5G发展
如何利用ZWS云平台的自定义统计算法对数据进行统计?
OpenHarmony集成OCR三方库实现文字提取
小米多看电纸书开启预约,电子墨水屏搭载安卓8.1系统
今天的VR如同1895年的无声电影时代
这些创业公司将赢在自动驾驶汽车风口,成为改变世界的企业
科通技术推出基于FPGA的应用设计结构化技术
STM32串口通信的重要性
科陆智能制造解决方案助力云南电网新型电力系统建设
铜线基础知识科普篇
数控机床的定义_数控机床有何优点
新能源汽车专用号牌有哪些_北京新能源汽车号牌最新消息
千方边缘计算单元产品介绍
一文就懂远端串扰与近端串扰
TIA Portal的程序块保护功能实现
我国带宽成本高出国外5倍 成CDN最大开支