流数据处理

EnOS™流数据分析服务能充分满足处理设备和资产的实时数据,以及经离线消息通道集成的数据的需求。

基于Apache Spark™ Streaming,经过Envision定制和优化,EnOS™流数据分析服务具有高可扩展性、高吞吐量、和高容错性等优点。EnOS还致力于沉淀IoT领域的流处理常用算法,开发者只需通过简单的模板配置即可完成流数据处理任务的开发及运维。

一般来说,数据的生成可以看作是一系列离散事件。在时间轴上绘制这些离散事件时,将形成事件流或数据流。流数据由这些连续的事件流组成。离线数据和流数据通常都被作为日志发送。与传统的离线数据不同,流数据是由许多数据源连续生成的。但是,流数据的数据量通常小于离线数据的量。流数据的常见数据源是连接到数据中心的设备、设备的遥测数据、以及移动应用或Web应用程序生成的日志文件。

EnOS™流数据分析可以应用于如下场景:

  • 资产原始数据的聚合计算
    在大多数业务场景中,您可能需要过滤从设备接收到的原始数据,通过特定的算法对数据进行计算,并保存聚合计算后的数据以便作进一步分析。
  • 设备状态计算
    在某些业务场景中,您可能需要获取设备的状态参数以确认其状态。通过流数据分析,可维护设备和站点的状态 (系统将测量点值和设备连接状态更新为最新状态,如果设备测点停止上送数据,设备连接可能中断)。

主要功能

EnOS流数据分析具有如下功能:

  • 无界的实时数据流
    流式计算引擎需要处理的数据是实时和无界的。数据流按时间顺序由流式计算服务订阅和消费。数据是连续生成的,所以数据流被连续地集成到流式计算系统中。因此,流数据始终是实时的和无边界的。
  • 连续高效的计算
    EnOS流式计算服务的计算模式是“事件触发”式的。触发器是前面提到的无边界流数据。每当新的流数据发送到流式计算系统,系统立即启动并执行计算任务。因此,流式计算是一个连续的过程,并且很高效。
  • 实时流数据集成
    流数据触发流式计算之后,计算结果按照预配的存储策略,存储到目标数据存储中。例如,计算后的结果可以被直接写入时序数据库(TSDB)中,用以生成报表。因此,流数据的计算结果被连续记录到目标数据存储器中。

流数据处理流程

EnOS流式计算数据处理流程如下:

  • 原始数据处理
    测点原始数据通过EnOS连接层发送到Kafka。流计算服务对接收到的测点信息进行分析。在处理之前,数据按指定的阈值进行过滤。超过阈值范围的数据将通过插值算法进行处理。
  • 数据计算
    经过阈值过滤之后的数据,由数据处理策略中定义的算法进行聚合计算。
  • 输出计算结果
    经流式计算模块处理之后的数据会流入内存数据库(IMDB)和Kafka,下游模块继续订阅Kafka的所有数据,并按照预先配置的存储策略,将其记录到时序数据库(TSDB)或其它目标存储系统中。用户可通过EnOS API查询存储的数据。