实时数据流

设备上送到EnOS的实时数据,经过IoT Hub之后,会经EnOS流数据处理引擎进行处理和计算。你可通过下图了解EnOS上的数据流:


../_images/data_flow.png


经过EnOS流数据处理的实时数据流,可以从3个层面来分析:数据引擎层、数据存储层、和数据应用层。

数据引擎层

设备连接配置完成之后,通过IoT Hub接收设备上传的原始数据。流数据会被以Topic的形式保存在Kafka中,然后由规则引擎和流数据引擎对数据进行处理。

  1. 通过 规则引擎,不同用户的数据被分发到单独的Kafka Topic中。
  2. 资产原始数据被分发到 Origin Data Topic 中,经过流数据引擎之后的数据被分发到 Cal Data Topic 中。
  3. 流数据处理引擎处理数据的逻辑包括如下2种:


下图为数据引擎层的数据流图:


../_images/data_flow_1.png

数据存储层

EnOS为设备采集原始数据和经流数据处理之后的数据提供多样化的存储选择和配置。TSDB存储适用于存储需要频繁访问的数据,同时支持存储经实时通道和离线通道集成的数据,并且对AI原始数据、AI归一化数据、DI数据、PI数据、通用数据等类型的数据提供分类存储、读取、和删除的能力。归档存储适用于存储访问频率较低且占用存储空间很大的业务数据,同时支持归档经实时通道上送的和离线通道集成的数据。数据经归档后生成的文件将根据配置的存储路径信息,自动同步到指定的存储系统中,实现数据备份。


分发到 Origin Data TopicCal Data Topic 中的数据会被同时写入 内存数据库(IMDB)时序数据库(TSDB)数据归档(Archive) 存储中。存储逻辑如下:

  1. IMDB:只存储资产的最新一条数据,实现数据的快速查询。
  2. TSDB:按照配置的时序数据存储策略,存储资产时序数据。存储的数据类型和存储时效可以通过 EnOS 管理控制台中的 时序数据管理 > 存储策略 功能来自行定义。存储在TSDB中的数据可以通过TSDB数据服务API来查询。
  3. Archive:按照配置的数据归档策略,归档资产数据。数据归档存储的数据源、文件属性、归档的存储系统和路径可以通过 EnOS 管理控制台中的 数据归档 功能来自行定义。


有关TSDB存储的详细信息,请参考 配置TSDB存储。有关数据归档服务的详细信息,请参考 配置数据归档任务


下图为数据存储层的数据流图:


../_images/data_flow_2.png

数据应用层

资产原始数据和经流数据处理引擎处理之后的数据,都可以通过 EnOS 管理控制台中的 数据订阅 功能进行订阅。EnOS提供Java SDK供开发者消费订阅数据,被订阅的资产数据可以直接用于应用开发。有关数据订阅服务的详细信息,请参考 开发数据订阅任务


下图为数据应用层的数据流图:


../_images/data_flow_3.png