时序数据
时序数据是物联网数据平台的基本数据,也是物联网之区别于普通的面向人的联网应用的地方。
时序数据的特点是,一般是均匀的数据流。也就是说,对于一个物体、设备,一旦开始发送数据,则一般是按照一定的采样周期发送的均匀、持续的数据。
但是这并不是说物联网就没有一般面向人的互联网那种数据峰值-估值的变化。
就以工业互联网为例,因为多数工厂是白天工作,所以很明显白天的日常工作时间端,比如说从8点到18点之间,数据处于一个高位的平台,因为一般这个时候设备都在上电运行。但是这种高位相对难以出现尖峰,因为设备时序数据一般都是均匀采集并发送到平台的。但是这也造成了另外一个问题:类似电网的峰谷差,我们在构建数据平台的时候,计算能力和带宽也必须按照预测的峰值来设计。
对于油气管道之类的物联网,这个数据峰谷差可能基本上是不存在的,因为油气、城市水网等系统是全天24小时都处于工作状态的,其相关的数据也一直在向平台提交,而且和水网、油气的负载没有关系。
但是对于离散制造业,一般是白天大家都在加工,所有的机器都在提交数据,而晚上只有少部分工厂在轮班工作,才会提交数据。总之,在构建数据接收模块乃至整个服务端的时候,物联网系统所服务的业务和客户的特点需要加以考虑。
时序数据在出现的时候一般是一个均匀的数据流。借鉴实时数据库的实现方式,我们在接收过程中要考虑数据在内存中的缓存,以防因为云端系统的算力问题丢失数据。所幸的是,目前大多数数据库都具有这种缓存能力。
另外需要注意的一点就是数据的重发。数据重发是数据平台和设备端之间的互动。当网络通道出现问题的时候,设备端可能会选择丢弃数据,但更好的实现方法也许是在就地存储未能发送到服务端的数据,并在网络信道畅通后集中发出。这样的策略虽然无法缓解数据的实时性所面临的挑战,但至少保证了数据在时间轴上的完整性。
考虑到物联网服务端很多应用基于统计和分析的,这种对数据完整性的保障经常是值得投资的,甚至是必须的。
事件数据
类似设备告警等数据是偶发的,虽然也带有时间戳,但是其一般没有特别的规律。
此类数据的接受对及时性和完整性都非常强调,因为一个没能及时收到或者干脆被丢失的报警数据可能是致命的。
当然也未必需要过度地追求,因为很多场合下并没有那么糟糕:现场的自动化控制系统还有第一道防线。
也正是如此,在设计自动化系统的时候,必须要注意不能因为有更上一个层次的物联网系统而有任何的疏忽;而将原本属于自动化系统的安全保障工作转移到物联网系统中,更是不可原谅的错误。
指令数据
指令数据主要是从服务器发送到设备的。可能并不带时间戳,但是建议最好是带有,因为有时指令的有效性和时间可能有关系:互联网并没有保证数据包按照你预想的次序到达的能力,如果你的应用中很强调这一点就要自己建立识别指令次序或指令发出的时间的机制,以便抛弃过期的指令,或者按照正确的次序来执行指令。
文件数据
文件类数据是双向的,但是一般不强调及时性。只要文件被完整无误地传递即可。FTP等现成的协议很多,所以此类数据一般并不需要过多关注。但是无论如何,“无误”还是要关注的,起码的校验,如MD5,还是有必要的。
媒体数据
实际上为了配合组建完整的业务平台,有时还要加上媒体数据。主要是视频、音频的采集。此类数据,尤其是视频数据,实际上已经有很完善的解决方案。但是之前一般是在安防等领域应用的,并不太被理解为物联网数据。但是最近几年,随着AI识别等技术的应用,从视频图像中自动识别设备状态也成为一项设备故障诊断技术,所以此类数据也开始和物联网平台发生关联。比如某数控机床厂商开发的关于断刀的在线诊断,就是在加工中心中附加一个摄像头采集实时视频上传到服务器,由服务器判断是否发生了刀具断裂的事故。一旦系统判定发生断刀,会立即向加工中心发送停机指令以防止故障影响的进一步扩大。