开发者学堂课程【物联网平台实战课程:阿里云物联网数据的统计分析】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/836/detail/13996
阿里云物联网数据的统计分析
内容介绍:
一、 演示场景设计
二、 平台介绍
三、 过程演示
一、 演示场景设计
首先是场景的设计说明,在一些工业或者特别是大型装备场景下设备的使用率,也就是我们所说的 OEE 设备的综合使用效能,是非常关键的,这个产品工厂的生产效率以及它的这个效能都是有直接关系的。
在互联网场景下,这个指标怎么清洗出来,首先是有一个 OEE 的计算公式,在网上可以搜到相关的资料。
OEE 的主要由三部分组成,第一部分是时间开动率,时间开动率就是这台机器的实际工作时长除以计划的工作时长,实际工作时长是这台设备从启动到结束的时间,计划时长是指今天工厂的计划排班除去计划停机。
比如说午休时间30分钟,或者中途休息的时间,还有八小时的睡眠时间,除去之后,就是计划时间。性能开动率是实际节拍乘以理想节拍,一般来说理想节拍是这个行业或者机床里面的历史数据汇聚出来的一个值,是它的加工的效率,那实际节拍就是这台机器生产的工件除以这个机器的实际工作时长,这样就得到性能开动率。良品率是加工合格的工件除以总的工件数,这三个指标相乘就是设备综合效能
右边的信息是模拟出来的在工厂的班次。比如八小时的工作制,也就是480分钟,有半小时的午餐中断和两次的休息中断,也就是的说计划时长是420分钟,在这个行业里面假设这个行业里面的一个理想节拍是一分钟生产60个工件。
另外还有一些维度数据,比如说本次要生产的工件有10万件,按照这个思想实验来看一下 OEE 的思想设计。这里罗列了几个相关的指标。
主要是用互联网数据分析平台的这个物模型来定义相关的测点或者字段,在工厂叫测点,在软件工程这边可能叫字段,一个字段叫当前的工作时间,这里是一次设备启动到停止的一个周期时间,它的单位是秒,用秒的话会更精确,也可能是分钟,每个地方可能不同。
第二个是当前的加工订单数,加工工件数,指一次工作的一个工作周期内完成的加工工件数。第三个是当前的合格工件,即一次工作时长加工出来的工件它的合格数有几个,除了这些核心的字段外还有其他的
比如说操作的停机事件,这种很常见,比如刚才说的午休时间,或者两次中断,这台机器需要停止,那么就会有一个操作停机这样的事件。另外在一些非计划停机的一些场景,比如说转轴更换,刀片更换,类似这样的非计划的故障,比如发动机异常之类的,需要有异常时间,还有其他的,比如液压油,润滑油,液位,压力,还有一些电器的一些温度等等。这个就是思想实验中模拟出来的彩色的一些字段,这就是最终通过互联网数据分析平台配置出来的一个报表
最上面的叫双轴图,双轴图上的折线是指设备综合效能,这个综合效能上面已经说过了,是由三个指标组成,一个是设备开动率,一个是性能开动率,以及一个良品率,可以看到这三个指标的趋势或者值,很明显可以观察出来当天的OEE 的值受哪个指标影响,比如说8月6号指标值很低,可以看到设备开动率很低,所以导致 OEE 的值很低,相应的其他折线的趋势很明显就看出来了。
下面就是单个指标与 OEE 之间的影响关系,可以单个来看,同时也可以用表格的方式来展示,很直观的展示 OEE 跟其他指标的关系。
下面这张图,是配置的设备的详细报表,
比如上面这块,是思想实验中模拟的发动机的指标。比如 CA 象限电压,AB 象限电压,AC 象限电压,电击温度,压力,以及润滑液位等等,当然,这个是思想实验里面假定的一些值,可能在实际的一个工厂里面,它的指标会更多,这些指标都可以一个个往上配。
下面是通过模拟出来的值统计出的计划停机的磁场的曲线,以及故障停机的曲线。
看到这个曲线之后,可以根据下面的一个详情来展示这个曲线的具体的值主要分布在什么地方,比如说刀片断裂维修,从什么时间到什么时间,总共花了7200秒,等等,这都是模拟的一些事件。
二、 平台介绍
这张图最左边是设备,平台的第一层是连接,连接上面的就是消息流转和设备的管理,以及运维模块,就是昨天所介绍的监控诊断。今天介绍的最右侧这一部分叫数据分析平台,模块主要分为设备备份,指标管理,后备的资产管理,持续数据分析,但实际数据分析这块还在建设中。
以及数据 API。最右边就是企业的系统,物联网的本质是把设备数字化,数字化就是接入,接入之后这个设备属性或者事件上报之后,有两个地方去使用,第一个是通过的规则引擎流转到企业的系统,进行 tp 业务系统的开发。
另一个流转之后,也可以存进数仓进行大数据的分析。
下面介绍物联网数据分析平台的概述,第一个点存储是依托阿里云的飞天的系统,主要是用的一个分布式的一个存储系统,叫盘古,保证了数据存储的安全性,数据丢失率极低,另外它的价格很低。整个价格是存储和计算分离的,这个盘古的存储是分布式的存储的,另外还支持多模的一个计算引擎,底下平台基层 max computer 的一个批量计算引擎,同时,对于一些常见的一些指标,是用 flink 来做一个实时数据的清洗,这一部分主要是通过基础 API 的方式提供给用户使用,这样使用是考虑到这个流计算的成本太高了,所以用一方的方式来做清洗当未来随着平台的存储这块也可以逐渐去开放。
以下还有一个是交互式查询,是依托于这个 hologres,是一个很强大的一个交互式查询引擎,同时也具备机器学习的模块。在数据应用方面主要是两方面,一个是可视化的能力,同时,还有数据 API 的提供。
最左边的是数据源,数据源可分成这个物模型的数据和制定的数据,这都是设备数据,同时,业务数据也正在开发中,八月三十号将上线支持业务数据的基层。
第二部分也正在开发中,就是数据管道,然后进入到数据分析和机器学习两个数据处理的模块,处理完之后,这个数据是以数据资产信息组织起来,提供给数据报表和数据 API 去使用。
数据源这部分是直接可以点击一个备份,可以备份整个互联网企业实际的数据,这边备份的话默认只备份标准模型的数据,同时,还提供一个解析管道、解析任务来支持用户去自定义解析他的一些事件,因为事件是嵌套的,所以他无法跟表对齐,需要有一个解析层,同时也支持用户自定义的一些 topic 的一个数据的一个解析。
备份可以支持整个实例的数据备分,也可以支持单个产品的数据进行备份。
数据管道是一个很典型的,或者是非常经典的编排方式来处理,目前提供了一个数据源源定义,源定义可以选择实例、产品、设备,设备只能是针对全部设备,另外可以选择 topic 类型,支持事件和自定义的 topic ,表达式这块和过滤器,是可以通过一个表达式来进行一个数据的转换,比如说四则运算,或者常用的一些函数进行数据处理。
另外,也支持数据的过滤,因为互联网的数据,有很多时候是不标准的,需要进行提前的过滤,达到比较好质量的数据,进行后续的加工和处理。
目标源是可以流回到具体的一个产品上去,下一个步骤是一个指标定义,指标定义其实可以对标到阿里的 model的这样一个指标设计的过程,它包括一个数据域,也就是所谓的指标域,也有个业务过程。这两节可以对应到原生指标,也就是原子指标,原子指标进行延伸是要增加一个统计周期和一个修饰词。
修饰词包括直接修饰词和业务修饰词。这个组合之后就是派生指标,这是很典型的指标定义过程,是用系统的方式,最佳实践出来提供给用户使用。刚才所定义的概念在词库管理里面会有一个原子词的定义,原子词包括展示名字和度量,数据类型和业务口径,这里内置了很多时间修饰词,当然也开放了一个工单方式来增加相关的时间修饰词。
在指标管理这部分是罗列出来相应的指标,刚才举的例子,已经提前把这些指标都已经给处理过了,比如故障周期,它是一个原始的指标,同时,像最近一天的设备全局的一个项目也就是 TPP ,以上属于野生指标,右侧的是任命为,指标是七加一调度的,每天调度的时候,会生成一个周期实例,并且相关的调度的过程,可以通过日志来查看,同时如果有异常,或者逻辑发生改变之后,可以进行重跑,并且也支持回刷实例,回刷实例是选择具体的一个指标,以及它的回刷的一个周期,可以进行手动的数据的回刷。
下面的指标生产完之后,有两个出口,第一个是数据洞察,也就是的报表系统。
这个截图就是报表
报表包括指标卡、嘱咐指标卡、折线图、柱状图、双轴图、条形图、散点图、仪表台和表格,当然对于一些很专业的 BI 系统的话这个可能还不是很全,但是这个是相当于把物联网数据的集成清洗,加工,以及的展示,进行一个完整的闭环。
如果有更高要求,可以通过数据 API 进行数据的拉取,在自己的大平台,或者报表进行定制化的展示。数据 API 也分成两排
第一排是基础服务 API,这些会把一些通用的设备的指标进行清洗,并且以一方的指标提供在这个基础服务 API 里面露出,目前有二三组预测的指标 API,可以看到任意一天的联网方式的分布,历史至今的设备品类分布,任意一天的设备品类分布排行等等,都是针对物联网数据分析沉淀下来的指标,这样就免用户一个数据清洗或开发的一个过程。
在制定数据 API 里面可以根据用户的要求,可以自己去制定 API 的形式,这里主要介绍这个能力主要包括 API 的一个测试,当然开放之前肯定要测试一下,可以直接在工作台进行测试,测试的时候有一个日志的返回,返回的数据结构的展示,同时调用的事例,也就是代码,这边展示的是 Java 的代码调用的一个示例代码,用户可以直接把这个相关的代码拷出去,就可以调用这个 api 了。
另外,是相关的入差和出差的说明,最基础的信息会在最顶部来展示。另外是对于新的产品会提供原始数据的接口,这样用户可以把上报的数据通过批量分页的方式来拉取,这就是刚才介绍的具体的一个制定。API 的过程。定义完之后,可以用相关的 SDK 的方式来调用。
上面就是整个系统的简单的介绍
三、 过程演示
下面会着重去介绍一下整个流程
第一个前置条件是要购买企业的数据型实力,或者在基础的实例上面去做分配,另外,是要创建相关的产品和设备,同时要把设备接上来上报数据。第二是数据上报之后,需要一个集成过程,这个集成过程,是因为物联网平台跟数据分析平台都是在一个平台内部的,所以它数据集成已经做好了初始化,只需要做一个点击备份这样的按钮,就可以完成数据集成的工作。再往下的话就是指标规范的介绍,比如原子词的定义,时间修饰词,以及主题域的一些信息,这个指标规范是为了规范大家做指标开发的时候有一个统一的口径,因为缺少统一口径之后你和别人开发的指标没法进行信息的交换,时间久了相应的指标就没人看得懂了。
指标介绍完之后会进入资产开发的过程,就是野生指标的定义,以及周期实例和回刷实例的展示,完成之后就是数据报表和 api 的数据消费的展示。
首先是要购买的这个数据实例,首先是选择数据型,之后可以选择对应的处理单元,这里处理单元只算到一个 cpu 和4G 内存,存储空间可以根据设备的量以及设备上报频率进行选择,点击购买就可以进行数据实例的购买,点击进去之后会有一个半软件,这是通用的,相关的数据型的指标就是处理单元。
还有一个前置条件,现在已经初始化好了一个叫工业演示的一个产品,并且相应的模型已经进行了一个定义,相应的设备也进行了创建,设备的一个上报是用了平台的设备模拟器进行模拟连接和上报数据相关的属性和事件,通过这个方式来上报。
完成这一块之后,到数据分析平台,刚才说了备份,数据备份,主要进行一个备份,选择一个周期,最多可以支持100年的数据备份,理论上只要阿里云公司还在数据是一定会存在的。备份完之后,相对数据已经集成完成,备份过程中,会有 loading 页,也就是默认回刷前一个月的一个数据到这个平台中,方便用户进行数据的操作。
增量部分数据会源源不断,只要设备在上报,那么数据就会持续集成到平台上来。数据管理的含义是可以根据每个产品来进行一个停止和备份。
然后进入数据资产,只要做了备份,那相应的属性,比如这个液压,油压力,当前工作时间,电机温度,这些值是在物模型属性里面定义的,就会导入到这里的原始定义里面,作为原始定义的存在,在原始定义或原始指标的基础上,可以进行指标的加工,就是野生指标,刚才说的 OEE 就在这里。
下面介绍一下具体的指标的定义。定义之前介绍一下几个概念,我们会根据不同的域,这里域分为产品,设备,分组,空间,活动这几个域,这几个域按照这里视角的展示,可以在产品上进行指标的定义,是相当于把整个产品的数据进行聚合,举个例子比如温度,耗电量,统计这个产品系列的一个设备的耗电量,这个指标应该在产品的视角进行创建,这个指标是把这个产品下所有设备的耗电量进行计算,设备视角的话针对某一个设备的耗电量统计,只处理单个设备的数据,分组的概念是选一批设备,可能不是按产品的力度,可能按照一个项目的力度或者一幢楼的力度,当然一幢楼还有空间的视角,这些都是相当于设备的一个缺陷,设备缺陷之后可以把相应指标清洗完之后,通过这些视角来展示。
这里模拟的一些工业的场景类似模板加工设备,是比较大的一个设备,它可能关注的是这个设备本身的一些指标。点击进去之后,相应的一个原始设备会在这里罗列,
可以查看相关的比如电机温度,按照折线图的方式,电机温度的上报是按照曲线直接绘制出来的,可以看到一些野生指标。可以看到四号五号六号七号八号一直到11号上报的数据,每天的生产出来的唯一的一个指标,它的曲线很明显的可以看出来这个设备的一个效率的变化。
原子词的话很简单,是根据平均温度,平局温度就是一个原始 指标,标识符是名称,度量单位就是℃,数值类型就是 double 型,口径可以随便写,具体的指标怎么加工呢,如果要在某一个域下面或者某一个视角进行指标的加工比如产品设备,分组,可以选择相应的标签,比如选设备,就要选择哪个产品下哪个设备,本实体是在这个设备下进行指标的加工,选择的时间修饰词,比如最近七天,要统计近七天的良品率。
良品率就是合格工件数除以当前的加工订单数,这样的值是良品率,点击完成,这样这个指标定义完成了。有两条路径,第一条可以直接去回刷这个指标,这个指标开始执行,如果有问题可以找到具体的某一天的任务,去看是否成功,点击可以看到这个执行的日志以及状态,以及提交时间和完成的时间。指标的延伸很简单,但目前平台只支持设备数据的延伸,以后逐步引进,业务数据也能进行一个汇聚和指标加工,同时能提供更多的加工的手段,因为这个指标的加工,是一个逐渐的方式,未来在生活方面进行提供。指标加工完之后可以到的一个数据洞察去做相应的报表。
刚才加工的指标会直接在这个数据洞察的数据集里面自动的投递过来。
刚刚说的001这个设备如果是在产品上进行指标的定义,那么就会到产品,设备上面定义的指标就会到设备这一栏,分组空间活动,包括物理表,这边有一个大致的看板,可以把历史数据给展现出来,这些数据都是模拟的,可能跟真实的不太一样,所有的原始指标,上面这是表头,这是具体的一个值。
还有一个是的如果是日调度的指标,会在这个指标类型日这一栏选择之后就可以看到了,可以看到具体的衍生指标,比如最近一天的加工时间的汇总,最近一天加工工件的汇总,最近一天的设备开动率的指标,日的平均节拍的指标,性能开动率的指标,最近一天的良品率的指标,以及的 O11的指标,以及设备全局效率的指标。这样可以协助这个设备,工厂来做这个效能的趋势的判断。这边是一个看板怎么样把这些数据展示出来呢?
可以创建一个工作簿,工作簿是报表的工作台,第一步选择一个人图表,第二步是拉个数据,第三步是条件,第四步是公开这个链接被对方的公网去访问,比如被自己的业务系统继承。
下面展示一个折线图,折线图要把相应的一个数据集给拉取进来,就是这里的产品和设备,点击之后相应的指标就在这里罗列出来了,配一个按日聚合的野生指标,X轴是日,o11指标放在 y 轴。
这个 oee 的折线图可以很明显的跟这个指标进行对比,比如说 OEE 跟性能开动率,设备开动率,以及的良品率之间的关系可以很直观的看出来,当然也可以用表格的方式来详细的展示,公开之后这个链接就可以分享到外网去使用了,另外,相关的详情可以在这里去配置
比如说发动机的一些指标,可以直接通过指标卡的方式配置出来,相应的事件可以用表格的方式来展示。
这边是报表这部分,但只是很粗略的去展示,其实还有很多的能力,比如说排序,重命名,还有对数字类型可以进行格式的调整,也可以进行聚合的方式,有最小值最大值平均值,这样整个分析可以用报表分析的方式可视化进行分析。
另外一部分是数据服务,刚才讲了这个数据服务,分成基础服务和自定义服务。基础服务是由已经清晰好的一方类指标,这里拿一个历史地区历史至今的地区的设备统计,按照区域来统计,指标有多少呢。比如说地区创建设备的占比,地区的激活设备数,地区的战线设备数,以及地区战线这个占比等等,去做一个具体展示,首先第一个参数可以看到是实例 ID,把实例 ID 填进去。
第二个是实体,看到这个例子的产品以及要展示的一个地方,时间的话就选一个2020年8月10号吧,8月10号那天刚才介绍指标的值直接罗列出来了。如果说要在的业务系统去调的话可以直接通过这个实例代码用 SDK 的方式去获取这个数据。
制定 API,可以根据的制定指标配置一个数据 API,这里已经配好了一个。
相应的一个 O1的指标就可以直接拉取出来了。
首先 API 名字,可以按照自己的需求来填写。地址是必填的,是为了防止把 API 定义成重样的就不好找了,标签可以自己打一个,描述随便填,这个指标是在设备下进行创建的,那就选择这个产品和的这个设备完,之后可以去做一个概览,概览在数据洞察里面可以看到具体的指标,这是一个野生指标。
然后按照自己的一个需求来配置好业务时间,第二个把全局中的效能访问出来,操作符可以用 Between hand ,也可以取具体的某一天。
可以选择您要排序的一个字段,比如按照业务时间排序是升序,升序是从小到大,结束之后可以做一下保存,同时可以做个测试,点击之后相应的指标就出来了,配置完之后就可以进行发布,发布的话可以拿 API path 使用 SDK 去调用了。