实时数据处理与存储系统的制作方法

文档序号:10580135阅读:407来源:国知局
实时数据处理与存储系统的制作方法
【专利摘要】本发明公开一种实时数据处理系统,基于构建在TCP或UDP传输协议之上的消息队列数据传输通道,通过Pub/Sub的消息队列主题模式,实现数据在传输过程中的数据过滤、处理和条件存储。本发明所涉及系统提供了一种灵活的、可动态部署的、可插拔的实时数据处理框架,便于针对不同的应用环境和需求,快速部署和实现相应的数据处理系统,使得易于将服务云化,变得可伸缩、可扩展,提高计算资源的使用效率和缩短服务开发与部署时间。
【专利说明】
实时数据处理与存储系统
技术领域
[0001]本发明涉及物联网、大数据技术领域。具体关于物联网的数据采集、实时处理和存储技术。
【背景技术】
[0002]大数据一般定义为一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低等四大特征。
[0003]大数据技术的战略意义不在于掌握庞大的数据信息,而在于对这些含有意义的数据进行专业化处理。换而言之,如果把大数据比作一种产业,那么这种产业实现盈利的关键,在于提高对数据的“加工能力”,通过“加工”实现数据的“增值”和构建商业模式。
[0004]从技术上看,大数据与云计算的关系就像一枚硬币的正反面一样密不可分。大数据必然无法用单台的计算机进行处理,必须采用分布式架构。它的特色在于对海量数据进行分布式数据挖掘。但它必须依托云计算的分布式处理、分布式数据库和云存储、虚拟化技术。而实时计算或者说实时数据处理是大数据应用的一个基础环节和关键技术,是实现基于数据的快速响应、快速决策的关键。
[0005]实时计算一般都是针对海量数据进行的,一般要求为秒级。实时计算主要分为两块:数据的实时入库、数据的实时处理。互联网领域的实时计算一般都是针对海量数据进行的,除了像非实时计算的需求(如计算结果准确)以外,实时计算最重要的一个需求是能够实时响应计算结果,一般要求为秒级。
[0006]实时数据处理的应用场景一般包括:
[0007]I)数据源是实时的不间断的,要求用户的响应时间也是实时的(比如对于大型网站的流式数据:网站的访问PV/UV、用户访问了什么内容、搜索了什么内容等,实时的数据计算和分析可以动态实时地刷新用户访问数据,展示网站实时流量的变化情况,分析每天各小时的流量和用户分布情况)
[0008]2)数据量大且无法或没必要预计,但要求对用户的响应时间是实时的。比如某地区分布的大量的雨量传感器,由于雨量达到某阈值,同时发出告警。
[0009]3)服务日志流,工业或网络系统在不间断的运行过程中产生的各种操作数据和运维数据,并需要基于这些日志数据对系统进行不间断的实时监控和分析。

【发明内容】

[0010]本发明的目的是充分利用基于Pub/Sub消息队列消息传输模式的数据系统架构设计,优化数据的传输、处理和存储模式,实现实时、高效、灵活、可扩展的数据处理、存储及应用系统,为物联网、大数据应用和服务提供开发框架与基础能力,而提供实时数据处理与存储系统。
[0011]本发明为了实现上述目的而采用的技术方案为:实时数据处理与存储系统,所述系统是基于Pub/Sub的消息传输模式,将数据采集端、应用端、处理端、存储端以及展示端通过松耦合的方式进行连接,彼此交互,形成面向服务的系统架构,所述的系统包括消息队列服务模块、应用程序模块、数据库系统模块、实时数据展示模块和数据过滤引擎模块,
[0012]所述的消息队列服务模块为一个实时数据通道代理,其实现可基于通信协议包括AMQP、MQTT、WebS0Cket和TCP,所述的消息队列服务模块为实时数据传输提供管道;
[0013]所述的应用程序模块通过系统A接口(其中A接口的实现方式依赖于消息队列服务装置所采用的通信协议)实现数据的输入或输出,应用程序模块运行的主体包括个人计算机(PC)、服务器、移动终端(如智能手机)和嵌入式设备;
[0014]所述的实时数据展示模块为一个基于Web的页面程序,其通过HTTP、Websocket或MQ协议从消息队列服务装置获取数据,并实时展示;
[0015]所述的数据库系统模块包括关系型数据库系统和NoSQL数据库;
[0016]所述的数据过滤引擎模块为一个脚本程序执行环境,所述数据过滤引擎模块,所述数据过滤引擎模块的程序运行时的计算机语言环境包括Javascript、Java、Per 1、Python、Scala和ErIangο
[0017]进一步的,所述系统还包括插拔式的数据处理插件模块,所述的插件模块直接作用于在传输通道中流动的数据,所述插件模块通过动态部署的方式提交到数据过滤引擎模块并运行,插件模块为程序源代码或编译后的程序文件。
[0018]进一步的,所述的数据处理引擎模块根据需求订阅相应的消息主题,所述消息主题的数据结构包括一个类型(Type)、客户端标识(ClientID)和语义主题(Topic)。
[0019]进一步的,所述消息主题的数据结构中各部分的连接方式包括:
[°02°] 1、通过特殊间隔字符的字符串连接,如“gateway_dsd2348_relay”,所述的特殊间隔字符包括下划线,星号和井号;
[0021]2、通过二进制数分段标识各部分内容的长度和构成。
[0022]进一步的,所述数据过滤引擎模块设有数据处理程序,所述的数据处理程序process的执行方式包括本地函数调用、RPC(远程过程调用)、REST API或Webservice。
[0023]进一步的,所述的数据处理程序根据每个数据中包含的TAG进行条件匹配和二次过滤,所述的数据处理程序中待处理数据包含一组TAG值,而数据的整体结构包括JSON格式或XML格式,所述的TAG值包括数字或字符串;所述的数据处理程序对TAG值进行过滤匹配时,包括对单个TAG进行匹配和进行OR或者AND等组合条件匹配。
[0024]更进一步的,所述数据处理程序处理之后的数据当出现以下情况时需要转发:
[0025]1、数据包含的TAG中有需要被转发的标识,如“relay_to_” ;
[0026]2、由数据处理程序的逻辑决定,如某种类型的数据需要转发,或处理后的数据满足相应的条件(如大于某个阈值)。
[0027]进一步的,所述数据处理程序处理之后的数据当出现以下情况时需要写入数据库:
[0028]1、数据包含的TAG中有需要存入数据库的标识,如“DB” ;
[0029]2、由数据处理程序的逻辑决定,如当数据产生于某段时间内的数据需要写入数据库,而其他时间段的数据不需要写入。
[0030]采用上述技术方案的有益效果是:本发明基于消息队列的异步数据传输通道,通过Pub/Sub的消息主题模式,实现数据在传输过程中的数据过滤、处理和条件存储;提出一种基于NoSQL数据库集群进行实时数据读写,并集成传统关系型数据库的系统框架,实现对历史遗留数据或系统的兼容,并实现对基于SQL查询的应用开发的兼容。本发明提供了一种灵活的、可动态部署的、可插拔的实时数据处理框架,便于针对不同的应用环境和需求,快速部署和实现相应的数据处理系统,使得易于将服务云化,变得可伸缩、可扩展,提高计算资源的使用效率和缩短服务开发与部署时间。
【附图说明】
[0031 ]图1为本发明所涉及实时数据处理与存储系统框图;
[0032]图2为本发明所涉实时数据处理与存储系统的数据过滤与处理应用框架;
[0033]图3为本发明所涉数据过滤与处理过程示意图;
[0034]图4为系统消息主题的数据结构示意图;
[0035]图5为本发明所涉及Pub/Sub的消息主题数据结构示意图;
[0036]图6为本发明所涉及数据过滤引擎对数据过滤的示意图一;
[0037]图7为本发明所涉及数据过滤引擎对数据过滤的示意图二;
[0038]图8为本发明所涉及数据过滤引擎对数据过滤的示意图三;
[0039]图9为本发明所涉及传输数据的示意图。
【具体实施方式】
[0040]以下结合附图和本发明优选的具体实施例对本发明的内容作进一步地说明。所举实例只用于解释本发明,并非用于限定本发明的范围。
[0041]如图1至图9中所示,本方案中所述的实时数据处理与存储系统,本发明所涉及的系统是基于Pub/Sub的消息传输模式,将数据采集端、应用端、处理端、存储端以及展示端通过松耦合的方式进行连接,彼此交互,形成面向服务的系统架构,使得整个系统是一个灵活的、易于扩展的服务开发框架,并实现一个实时数据处理系统,其中包括:实时数据处理与存储系统及其应用框架和实时数据处理与过滤的方式;在本方案中所述的系统如图1所示,本发明所涉及的系统构成包括:消息队列服务装置模块、应用程序模块、数据库系统模块、实时数据展示模块和数据过滤引擎模块。其中,消息队列服务装置模块为一个实时数据通道代理,其实现是基于通信协议包括AMQP、MQTT、WebS0Cket和TCP等,所述的消息队列服务装置模块为本发明所涉及系统的核心组件,为实时数据传输提供管道;所述的应用程序模块通过系统A接口(其中A接口的实现方式依赖于消息队列服务装置所采用的通信协议)实现数据的输入或输出,应用程序模块运行的主体包括个人计算机(PC)、服务器、移动终端(如智能手机)和嵌入式设备等,一般运行在嵌入式设备(如上位机)上的应用程序作为数据的采集端,往系统输入数据;而运行在PC或服务器上的应用程序作为数据的使用端。实时数据展示模块为一个基于Web的页面程序,其通过HTTP、WebS0Cket或MQ协议从消息队列服务装置获取数据,并实时展示;数据过滤引擎模块为一个脚本程序执行环境,数据过滤引擎模块为本方案所涉及系统的一个主要模块,大部分实时数据处理和过滤将在该数据过滤引擎模块进行,该数据过滤引擎模块的程序运行时环境包括Javascript、Java、Per1、Python、Scala和ErIang等计算机语言,各种运行时环境本身及其工作原理根据系统具体实现所采用或支持的程序运行时环境,本发明所涉及实时数据处理与过滤的逻辑将由对应的开发语言实现;数据库系统模块包含关系型数据库系统及NoSQL数据库,但在本方案中,通过接口D与消息队列服务装置交互的数据库仅限于NoSQL数据库,为了保证数据传输的实时性和存储能力的可扩展性,本方案所涉及系统采用NoSQL数据库集群直接与消息队列服务装置交互,具体选择何种NoSQL数据库系统本方案不作限制。系统在具体实现时根据所选择的NoSQL数据库系统,在消息队列装置模块集成对应的NoSQL数据库客户端,如图1所示。
[0042]本方案中所涉及的实时数据处理与存储系统还提供一种可插拔的数据处理插件模块,如图2所示,在本方案中每个插件模块应用程序直接作用于在传输通道中流动的数据,每个插件应用程序通过动态部署的方式提交到数据过滤引擎模块并运行(图3),插件模块应用程序可以为程序源代码或编译后的程序文件。
[0043]在本方案中所述的系统中,被采集或输入的数据通过消息队列服务装置模块,被按条件直接写入NoSQL数据库集群或由其他过滤插件进行处理,或直接被忽略掉。如图3所示,若系统在进行数据过滤或处理的时候需要依赖系统中已存在的数据进行逻辑判断,数据过滤插件直接通过数据读写接口读取数据库中的数据。本方案中所涉及系统支持基于关系型数据库(RDBMS)的业务逻辑判断和基于SQL的数据查询与应用。如系统已经存在历史遗留数据在传统关系型数据库里,系统在进行数据过滤时需要查询已经存在于关系型数据库中的数据或关系,系统定时(按秒、分或其他时间单位,由具体的系统实现而定)或根据事件触发将关系型数据库中的数据同步到NoSQL数据库集群;存储在NoSQL数据库集群中的数据处理结果也根据需要通过数据同步接口同步到关系型数据库中。
[0044]在本方案中所述的数据处理的方式如图3所示,首先每个过滤应用程序根据需求,订阅某个消息主题,而每个消息主题的数据结构定义如图4所示,包含:一个类型(Type),客户端标识(ClientID)和语义主题(Topic)等,每个消息主题数据结构中各部分的连接方式包括但以下几种方式:
[0045]1、通过特殊间隔字符的字符串连接,如“gateway_dsd2348_relay”,且连接特殊字符包括但不限于下划线“,星号、井号等;
[0046]2、通过二进制数分段标识各部分内容的长度和构成,如图5所示。
[0047]在本方案中当客户端要发送关于某个语义主题(Topic)的数据时,客户端应用程序会自动将其组装成系统消息主题的数据结构,而数据结构中的其他部分可以从设备或客户端属性中读取,也可以由程序设计主动指定。然后,应用程序将数据通过系统接口 A(根据系统具体实现所选择的通信协议)发布(Pub)到上述组装好的消息主题,由消息队列系统装置接收到,转发给数据过滤引擎,并由数据过滤引擎根据消息主题进行过滤,过滤的方式如图6所示,过滤引擎分别对消息主题的各个部分进行匹配(图6),或者对各部分进行OR(逻辑或)条件组合匹配(图7),或者对各部分进行AND(逻辑与)条件组合匹配(图8),以及各种混合的组合匹配。匹配模式还包括任意(全匹配)模式,即消息主题的某部分或多个部分为任意值都被成功匹配。根据不同的匹配结果,数据过滤引擎执行相对应的数据处理程序(如图
6、图7和图8),数据处理程序process的执行方式包括但本地函数调用、RPC(远程过程调用)、REST API和Webservice等。
[0048]数据处理程序根据每个数据中包含的TAG进行条件匹配和二次过滤,如图9所示,在本发明所涉及系统中每条待处理数据都包含一组TAG值,而数据的整体结构可以为一个JSON格式和XML格式,当然也可以是其他数据表达格式;而TAG值可以为数字、字符串或其他数据结构体;数据处理程序对TAG值进行过滤匹配时,既可以对单个TAG进行匹配,也可以进行OR或者AND等组合条件匹配。
[0049]在本发明所涉及系统,对于处理程序处理后的数据可以被写入数据库或转发/路由给其他处理程序或客户端应用程序,若需要转发,该数据将被发布(Pub)到一个或多个对应的消息主题(如图3虚线所示),并由订阅了相应主题的客户端应用程序或其他处理程序接收到。处理后的数据是否需要转发有以下两种决定方式:
[0050]I)、数据包含的TAG中有需要被转发的标识,如“relay_to_” ;
[0051]2)、由数据处理程序的逻辑决定,如某种类型的数据需要转发,或处理后的数据满足某种条件(如大于某个阈值)等。
[0052]在本方案中所涉及的系统,对于数据是否需要写入数据库,由数据处理程序决定,而写入的依据包含以下两种情况:
[0053]I)数据包含的TAG中有需要存入数据库的标识,如“DB” ;
[0054]2)由数据处理程序的逻辑决定,如当数据产生于某段时间内的数据需要写入数据库,而其他时间段的数据不需要写入等。
[0055]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.实时数据处理与存储系统,所述系统是基于Pub/Sub的消息传输模式,将数据采集端、应用端、处理端、存储端以及展示端通过松耦合的方式进行连接,彼此交互,形成面向服务的系统架构,其特征在于:所述的系统包括消息队列服务模块、应用程序模块、数据库系统模块、实时数据展示模块和数据过滤引擎模块,所述的消息队列服务模块为一个实时数据通道代理,其实现可基于通信协议包括AMQP、MQTT、WebS0Cket和TCP,所述的消息队列服务模块为实时数据传输提供管道; 所述的应用程序模块通过系统A接口(其中A接口的实现方式依赖于消息队列服务装置所采用的通信协议)实现数据的输入或输出,应用程序模块运行的主体包括个人计算机(PC)、服务器、移动终端(如智能手机)和嵌入式设备; 所述的实时数据展示模块为一个基于Web的页面程序,其通过HTTP、WebS0Cket或MQ协议从消息队列服务装置获取数据,并实时展示; 所述的数据库系统模块包括关系型数据库系统和NoSQL数据库; 所述的数据过滤引擎模块为一个脚本程序执行环境,所述数据过滤引擎模块,所述数据过滤引擎模块的程序运行时的计算机语言环境包括Javascript、Java、Perl、Python、Scala和Erlang。2.根据权利要求1中所述的实时数据处理与存储系统,其特征在于:所述系统还包括插拔式的数据处理插件模块,所述的插件模块直接作用于在传输通道中流动的数据,所述插件模块通过动态部署的方式提交到数据过滤引擎模块并运行,插件模块为程序源代码或编译后的程序文件。3.根据权利要求1中所述的实时数据处理与存储系统,其特征在于:所述的数据处理引擎模块根据需求订阅相应的消息主题,所述消息主题的数据结构包括一个类型(Type)、客户端标识(ClientID)和语义主题(Topic)。4.根据权利要求3中所述的实时数据处理与存储系统,其特征在于:所述消息主题的数据结构中各部分的连接方式包括: 4-1、通过特殊间隔字符的字符串连接,如“gateway_dsd2348_relay”,所述的特殊间隔字符包括下划线,星号和井号“#,,; 4-2、通过二进制数分段标识各部分内容的长度和构成。5.根据权利要求1中所述的实时数据处理与存储系统,其特征在于:所述数据过滤引擎模块设有数据处理程序,所述的数据处理程序process的执行方式包括本地函数调用、RPC(远程过程调用)、REST API或Webservice。6.根据权利要求5中所述的实时数据处理与存储系统,其特征在于:所述的数据处理程序根据每个数据中包含的TAG进行条件匹配和二次过滤,所述的数据处理程序中待处理数据包含一组TAG值,而数据的整体结构包括JSON格式或XML格式,所述的TAG值包括数字或字符串;所述的数据处理程序对TAG值进行过滤匹配时,包括对单个TAG进行匹配和进行OR或者AND等组合条件匹配。7.根据权利要求6中所述的实时数据处理与存储系统,其特征在于:所述数据处理程序处理之后的数据当出现以下情况时需要转发: 7-1、数据包含的TAG中有需要被转发的标识,如“relay_to_” ; 7-2、由数据处理程序的逻辑决定,如某种类型的数据需要转发,或处理后的数据满足相应的条件(如大于某个阈值)。8.根据权利要求6中所述的实时数据处理与存储系统,其特征在于:所述数据处理程序处理之后的数据当出现以下情况时需要写入数据库: 8-1、数据包含的TAG中有需要存入数据库的标识,如“DB” ; 8-2、由数据处理程序的逻辑决定,如当数据产生于某段时间内的数据需要写入数据库,而其他时间段的数据不需要写入。
【文档编号】G06F9/54GK105956082SQ201610281670
【公开日】2016年9月21日
【申请日】2016年4月29日
【发明人】犹杰, 马帝, 安谋
【申请人】深圳前海大数点科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1