数据实时处理与存储系统及方法与流程

文档序号:19065040发布日期:2019-11-06 02:14阅读:289来源:国知局
数据实时处理与存储系统及方法与流程

本发明涉及数据实时处理与存储技术领域,特别是涉及一种数据实时处理与存储系统及方法,主要应用于工业现场的数据收集、数据实时处理、数据分析与数据挖掘的应用情况,提供数据高速处理和多维度分析的手段。



背景技术:

传统的数据实时处理与存储,数据通过设备常用采集协议(例如modbus/opcua)的传输方式对设备中的一些运行参数进行采集,并存储到相应的结构化/关系型数据库中,再由客户可视化的监控端(cs结构)进行呈现。该技术方案有如下劣势,在一些高速/超高速的数采场景中,对于高速的设备数据接入,整个系统会出现系统性能下降,变慢甚至崩溃的情况,无法应对需要实时计算的场景,也就无法将一些客户需要的处理之后的关键数据提供给客户。同时,设备种类繁多,其自身支持的协议也鱼龙混杂,直接传输并存储到数据库,缺少统一的数据传输格式,不利于协议多类型的扩展;在数据采集频率达到一定频率的情况下,结构化的关系型数据库很容易达到性能瓶颈,造成存取过程的缓慢,影响界面数据及功能给客户的及时反馈,严重的情况下,会造成数据库服务的崩溃不可用,数据的丢失与整个系统的宕机。此外,传统数据采集系统对数据的分享与第三方接口的支持也比较有限,用户无法根据采集到的数据自行分析其中的价值。



技术实现要素:

本发明针对现有技术存在的技术问题和不足,提供一种新型的数据实时处理与存储系统及方法,保证数据服务的稳定性。

本发明是通过下述技术方案来解决上述技术问题的:

本发明提供一种数据实时处理与存储系统,其特点在于,其包括物接入模块、消息队列模块、规则引擎模块、数据库模块和算法管理模块;

所述物接入模块用于接入各类设备或网关的各类协议格式的数据;

所述消息队列模块用于以消息队列的方式承载物接入模块传输的数据;

所述规则引擎模块用于对消息队列中的数据进行数据清洗和数据处理;

所述数据库模块用于对经过数据清洗和数据处理后的数据进行存储,供之后的接口/应用进行调用,所述数据库模块包含三种不同类型的数据库:用于实时数据存储的内存数据库,用于存放业务逻辑关系、相关统计数据的关系型数据库,用于存放基于时间序列的采集历史数据的时序数据库;

所述算法管理模块用于对已存入时序数据库中的数据,按照建立的各种不同功能的算法模型进行数据价值方面的分析与挖掘,形成统计与分析数据并存入关系型数据库中。

较佳地,所述规则引擎模块包括数据获取子模块、数据解析子模块和数据清洗处理子模块;

所述数据获取子模块用于从消息队列中通过共享订阅方式获取数据;

所述数据解析子模块用于对获取到的数据按格式进行解析并将数据解析为json数据;

所述数据清洗处理子模块包括对json数据进行数据清洗和数据处理。

较佳地,所述数据清洗和数据处理包括:第一种方式是采用系统自带的数据处理清洗功能,针对传输过来的数据,检测出不满足处理/存储的异常数据与格式,对数据进行初步的基础处理,规范数据落地前的格式正确性;第二种方式是采用用户自定义的数据处理高级功能,可以根据用户自身对某个/类数据需要进行的数据处理建立相应的处理规则,对传输过来的数据进行数据处理。

较佳地,所述数据实时处理与存储系统还包括物管理模块,所述物管理模块用于对各类设备或网关进行统一的监控管理,进行基础的配置和升级、重启等基础操作,侧重于设备/网关的状态监控与配置。

较佳地,所述物接入模块和消息队列模块均采用分布式架构,所述协议包括mqtt和opcua。

本发明还提供一种数据实时处理与存储方法,其特点在于,其利用上述的数据实时处理与存储系统实现,所述数据实时处理与存储方法包括以下步骤:

s1、所述物接入模块接入各类设备或网关的各类协议格式的数据;

s2、所述消息队列模块以消息队列的方式承载物接入模块传输的数据;

s3、所述规则引擎模块对消息队列中的数据进行数据清洗和数据处理;

s4、所述数据库模块对经过数据清洗和数据处理后的数据进行存储,供之后的接口/应用进行调用,所述数据库模块包含三种不同类型的数据库:用于实时数据存储的内存数据库,用于存放业务逻辑关系、相关统计数据的关系型数据库,用于存放基于时间序列的采集历史数据的时序数据库;

s5、所述算法管理模块对已存入时序数据库中的数据,按照建立的各种不同功能的算法模型进行数据价值方面的分析与挖掘,形成统计与分析数据并存入关系型数据库中。

较佳地,步骤s3包括以下步骤:

s31、通过socket套接字与消息队列获取连接,实现共享订阅,获取数据和配置;

s32、判断是否成功获取所需的正确的数据和配置,若不成功重新执行步骤s31的操作,否则进入步骤。

s33、判断获取的数据的数据类型,在为data数据类型时进入步骤s34,在为alarm数据类型时进入步骤s35;

s34、解析data类型数据并解析成json类型数据;

s35、解析alarm类型数据并解析成json类型数据;

s36、对data数据类型对应的json类型数据进行数据清洗和数据处理;

s37、对alarm数据类型对应的json类型数据进行数据清洗和数据处理。

较佳地,所述数据清洗和数据处理包括:第一种方式是采用系统自带的数据处理清洗功能,针对传输过来的数据,检测出不满足处理/存储的异常数据与格式,对数据进行初步的基础处理,规范数据落地前的格式正确性;第二种方式是采用用户自定义的数据处理高级功能,可以根据用户自身对某个/类数据需要进行的数据处理建立相应的处理规则,对传输过来的数据进行数据处理。

较佳地,所述数据实时处理与存储系统还包括物管理模块,所述物管理模块对各类设备或网关进行统一的监控管理,进行基础的配置和升级、重启等基础操作,侧重于设备/网关的状态监控与配置。

在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。

本发明的积极进步效果在于:

本发明解决了高并发接入难,数据实时处理性能低,大数据场景下数据库读写慢的问题,提升了同时接入的设备/网关数量,支持了数据落地前的清洗与用户自定义规则的数据格式转换、以及大数据量场景下的高效率读写实现。

附图说明

图1为本发明较佳实施例的数据实时处理与存储系统的结构示意图。

图2为本发明较佳实施例的数据实时处理与存储方法的流程图。

图3为本发明较佳实施例的数据清洗和数据处理的流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本实施例提供一种数据实时处理与存储系统,其包括物接入模块1、消息队列模块2、规则引擎模块3、物管理模块4、数据库模块和算法管理模块6。

所述物接入模块1用于接入各类设备或网关的各类协议格式的数据,主要以mqtt/opcua两种协议为主,通过集群环境的分布式部署实现负载均衡和弹性伸缩,达到服务的高可用,避免因为瞬时数据接入量过大造成的服务不可用的情况,将采集到的数据传输到消息队列模块中。

所述消息队列模块2用于承载物接入模块传输的数据,供其他模块使用,主要作为数据的集中式分发中心使用,同样是使用集群环境的分布式部署,避免高并发情况下可能出现的性能瓶颈。

所述规则引擎模块3用于对消息队列中的数据进行数据清洗和数据处理。

其中,所述规则引擎模块3包括数据获取子模块、数据解析子模块和数据清洗处理子模块。

所述数据获取子模块用于从消息队列中通过共享订阅方式获取数据。

所述数据解析子模块用于对获取到的数据按格式进行解析并将数据解析为json数据,可以过滤很多非法格式的数据包对系统正常数据造成的影响,为数据清洗落地提供格式化的源数据流。

所述数据清洗处理子模块包括对json数据进行数据清洗和数据处理。

支持两种方式的数据清洗和数据处理:第一种方式是系统自带的数据处理清洗功能,针对传输过来的数据,检测出不满足处理/存储的异常数据与格式(脏数据),对数据进行初步的基础处理,规范数据落地前的格式正确性;第二种方式是用户自定义的数据处理高级功能,可以根据用户自身对某个(类)数据需要进行的数据处理建立相应的处理规则,对传输过来的数据进行数据处理。

所述物接入模块1是整个数据管道的起点,它通过接收来自网关和机器的所有原始数据与网关和机器密切交互。然后,通过分布式消息队列模块2将数据传输到规则引擎模块3,该系统使用基于消息的主题实现生产者和消费者之间的通信。

所述规则引擎模块3用于使用一组规则处理来自网关/设备的消息,该引擎是一种软件系统,它使用能够应用于数据的规则来产生结果,它不是通常的命令式模型,它由与条件和循环有序的命令组成,而是基于规则系统,其中每个规则都有一个条件和一个动作。一旦所有数据都被规则处理和,这些数据就被发送到三种不同类型的数据库:内存数据库5、关系型数据库6和时序数据库8。

所述数据库模块用于对经过数据清洗和数据处理后的数据进行存储,供之后的接口/应用进行调用。

具体地,所述数据库模块包含三种不同类型的数据库:为应对数据实时性要求比较高的场景,用于实时数据存储的内存数据库8;用于存放业务逻辑关系、相关统计数据的关系型数据库5,用于存放基于时间序列的采集历史数据的时序数据库7。其中,内存数据库8、关系型数据库5、时序数据库7各司其职,分别应对快查询、常规用、高写入的使用场景,通过集群化的高可用部署,实现高性能的存取过程。

内存数据库5是一种非关系数据库,主要依赖于内存进行数据存储,而不是在磁盘或ssd上存储数据的数据库。内存数据库旨在通过消除访问磁盘的需要来获得最短的响应时间。结果,该数据库以亚毫秒的延迟实现了每秒数百万次操作的吞吐量,这使得适合于实时数据处理。

关系数据库6是由表、记录和列组织的多个数据集的集合集,这些数据库在数据库表之间建立了明确定义的关系,表通信和共享信息,这有助于数据搜索,组织和报告。

时序数据库8是针对带时间戳或时间序列数据优化的数据库,时间序列数据只是随时间推移,监控,下采样和汇总的测量或事件,由于其时间序列数据与其他数据工作负载非常不同的属性是许多记录的数据生命周期管理,汇总和大范围扫描。因此,它适用于存储历史数据。

所述算法管理模块6用于对已存入时序数据库中的数据,按照建立的各种不同功能的算法模型进行数据价值方面的分析与挖掘,形成统计与分析数据并存入关系型数据库中。算法的模型随着数据量的不断增多,体现的结果会越来越准确客观。

所述物管理模块4用于对各类设备或网关进行统一的监控管理,进行基础的配置和升级、重启等基础操作,侧重于设备/网关的状态监控与配置。

图2是数据实时处理与存储方法的流程图。具体的流程如下:

1.当物接入模块接收机器通过网关发送的数据时,整个过程开始(步骤1000)。

2.物接入作为中间件解决方案,允许dac和网关在云计算环境中进行通信(步骤1001)。

3.物接入模块连接到消息队列模块,并将消息传输到消息队列模块上,从系统节点,规则引擎使用消息(步骤1002)。

4.一旦原始数据到达,规则引擎就清洗并处理数据并分类以将数据发送到正确的数据库(步骤1003)。

见图3,步骤1003具体包括以下步骤:

1):获取连接(步骤31):通过socket套接字与消息队列获取连接,实现共享订阅,设置心跳30s,具有失败后的重连机制,精确exactlyonce(对于一条网关数据,消费者确保只收到一次),多个消费者同时消费一份数据,消息队列的相关配置文件放置宿主机文件目录下,与项目分离,实现可配置化。

一个服务器节点每5分钟定时查询关系型数据库,获取设备基础信息,使用广播模式推送所有节点服务器,所有的服务器都能获取设备基础信息,减少查询关系型数据库次数,优化性能,如果出现查询异常,web页面显示异常信息,则结束数据处理操作。

2):判断是否成功获取了所需要的正确的数据和配置(步骤32),若不成功,重新执行步骤31的操作。

3):判断消息队列传输过来的数据的数据类型(步骤33)。

4):若为data类型的数据,则解析data类型数据(步骤34):解析字符串数据成json类型,对json数据切割成多条设备采集变量数据,支持秒/毫秒级采集数据,数据字段名称按规则转换。

数据维表关联,采集数据和设备的基础信息关联,通过gatemac获取machid,采集的数据组装成新的设备数据(包含machid),如果gatemac匹配不上machid,那就不是数据平台中心需要采集的数据,当前采集的数据不会保存,则结束数据处理操作。

5):按照如下的规则进行数据清洗(步骤36):时间字符串转换成long类型数据,采集参数名按unicode编码方式进行编码,避免乱码的问题。采集参数值只保存数值,正则过滤英文和汉字。

6):若为alarm类型的数据,则解析alarm类型数据(步骤35):解析字符串成json类型,按照定义规则过滤垃圾数据,清洗有缺省值数据,按照规则转换字段名称,待写入关系型数据库。

7):对alarm数据类型对应的json类型数据进行数据清洗和数据处理(步骤37)。

5.用于实时应用程序的数据存储在内存数据库中以进行即时响应(步骤1004)。

6.同时,配置数据和一些计算数据直接存储在关系数据库中,该关系数据库使用自然结构和数据组织提供数据访问(步骤1005)。

7.大规模数据将存储在时序数据库中,因为它通过引入效率来处理规模,这种效率只有将时间视为第一优先级,可提高性能,包括更高的摄取率,更快的查询速度以及更好的数据压缩(1006)。

进行各类数据的数据落地操作。对于data类型的数据,按照compid/machid/operationvalue对采集数据keyby分区,制造一个时间窗口缓存,分布式缓存在所有服务器的节点上,支持秒/毫秒级别数据,每2秒取其keyby中最新的数据,降低写内存数据库操作,提升性能,基本不耗时。实时存入内存数据库,在内存数据库的写入时设置了过期时间60秒,当60秒内无该设备的采集参数上传,则清除,保证数据的时效性。将alarm类型的数据写入关系型数据库。

8.一旦存储了所有数据,应用程序通过api检索这些数据以将处理的数据显示给任何用户(步骤1007和1008)。

此外,算法管理器还使用这些api来获取来自时间序列数据库的历史数据和来自关系数据库的配置数据,以分析和预测用于监视目的的未来值(步骤1008)。

本发明可以提供多种数据算法模型的使用与分析统计结果的呈现。对外提供出的实时类型的数据、历史类型的数据、统计类型的数据api可以给第三方应用/开发者更宽泛,更方便的数据使用方式。实现更准确的接入、更快的处理、更及时的数据交互和更丰富更自由的二次开发。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1