本发明专利技术公开一种实时数据处理系统,基于构建在TCP或UDP传输协议之上的消息队列数据传输通道,通过Pub/Sub的消息队列主题模式,实现数据在传输过程中的数据过滤、处理和条件存储。本发明专利技术所涉及系统提供了一种灵活的、可动态部署的、可插拔的实时数据处理框架,便于针对不同的应用环境和需求,快速部署和实现相应的数据处理系统,使得易于将服务云化,变得可伸缩、可扩展,提高计算资源的使用效率和缩短服务开发与部署时间。
【技术实现步骤摘要】
本专利技术涉及物联网、大数据
具体关于物联网的数据采集、实时处理和存储技术。
技术介绍
大数据一般定义为一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低等四大特征。大数据技术的战略意义不在于掌握庞大的数据信息,而在于对这些含有意义的数据进行专业化处理。换而言之,如果把大数据比作一种产业,那么这种产业实现盈利的关键,在于提高对数据的“加工能力”,通过“加工”实现数据的“增值”和构建商业模式。从技术上看,大数据与云计算的关系就像一枚硬币的正反面一样密不可分。大数据必然无法用单台的计算机进行处理,必须采用分布式架构。它的特色在于对海量数据进行分布式数据挖掘。但它必须依托云计算的分布式处理、分布式数据库和云存储、虚拟化技术。而实时计算或者说实时数据处理是大数据应用的一个基础环节和关键技术,是实现基于数据的快速响应、快速决策的关键。实时计算一般都是针对海量数据进行的,一般要求为秒级。实时计算主要分为两块:数据的实时入库、数据的实时处理。互联网领域的实时计算一般都是针对海量数据进行的,除了像非实时计算的需求(如计算结果准确)以外,实时计算最重要的一个需求是能够实时响应计算结果,一般要求为秒级。实时数据处理的应用场景一般包括:1)数据源是实时的不间断的,要求用户的响应时间也是实时的(比如对于大型网站的流式数据:网站的访问PV/UV、用户访问了什么内容、搜索了什么内容等,实时的数据计算和分析可以动态实时地刷新用户访问数据,展示网站实时流量的变化情况,分析每天各小时的流量和用户分布情况)2)数据量大且无法或没必要预计,但要求对用户的响应时间是实时的。比如某地区分布的大量的雨量传感器,由于雨量达到某阈值,同时发出告警。3)服务日志流,工业或网络系统在不间断的运行过程中产生的各种操作数据和运维数据,并需要基于这些日志数据对系统进行不间断的实时监控和分析。
技术实现思路
本专利技术的目的是充分利用基于Pub/Sub消息队列消息传输模式的数据系统架构设计,优化数据的传输、处理和存储模式,实现实时、高效、灵活、可扩展的数据处理、存储及应用系统,为物联网、大数据应用和服务提供开发框架与基础能力,而提供实时数据处理与存储系统。本专利技术为了实现上述目的而采用的技术方案为:实时数据处理与存储系统,所述系统是基于Pub/Sub的消息传输模式,将数据采集端、应用端、处理端、存储端以及展示端通过松耦合的方式进行连接,彼此交互,形成面向服务的系统架构,所述的系统包括消息队列服务模块、应用程序模块、数据库系统模块、实时数据展示模块和数据过滤引擎模块,所述的消息队列服务模块为一个实时数据通道代理,其实现可基于通信协议包括AMQP、MQTT、Websocket和TCP,所述的消息队列服务模块为实时数据传输提供管道;所述的应用程序模块通过系统A接口(其中A接口的实现方式依赖于消息队列服
务装置所采用的通信协议)实现数据的输入或输出,应用程序模块运行的主体包括个人计算机(PC)、服务器、移动终端(如智能手机)和嵌入式设备;所述的实时数据展示模块为一个基于Web的页面程序,其通过HTTP、Websocket或MQ协议从消息队列服务装置获取数据,并实时展示;所述的数据库系统模块包括关系型数据库系统和NoSQL数据库;所述的数据过滤引擎模块为一个脚本程序执行环境,所述数据过滤引擎模块,所述数据过滤引擎模块的程序运行时的计算机语言环境包括Javascript、Java、Perl、Python、Scala和Erlang。进一步的,所述系统还包括插拔式的数据处理插件模块,所述的插件模块直接作用于在传输通道中流动的数据,所述插件模块通过动态部署的方式提交到数据过滤引擎模块并运行,插件模块为程序源代码或编译后的程序文件。进一步的,所述的数据处理引擎模块根据需求订阅相应的消息主题,所述消息主题的数据结构包括一个类型(Type)、客户端标识(ClientID)和语义主题(Topic)。进一步的,所述消息主题的数据结构中各部分的连接方式包括:1、通过特殊间隔字符的字符串连接,如“gateway_dsd2348_relay”,所述的特殊间隔字符包括下划线“_”,星号“*”和井号“#”;2、通过二进制数分段标识各部分内容的长度和构成。进一步的,所述数据过滤引擎模块设有数据处理程序,所述的数据处理程序process的执行方式包括本地函数调用、RPC(远程过程调用)、REST API或Webservice。进一步的,所述的数据处理程序根据每个数据中包含的TAG进行条件匹配和二次过滤,所述的数据处理程序中待处理数据包含一组TAG值,而数据的整体结构包括JSON格式或XML格式,所述的TAG值包括数字或字符串;所述的数据处理程序对TAG值进行过滤匹配时,包括对单个TAG进行匹配和进行OR或者AND等组合条件匹配。更进一步的,所述数据处理程序处理之后的数据当出现以下情况时需要转发:1、数据包含的TAG中有需要被转发的标识,如“relay_to_”;2、由数据处理程序的逻辑决定,如某种类型的数据需要转发,或处理后的数据满足相应的条件(如大于某个阈值)。进一步的,所述数据处理程序处理之后的数据当出现以下情况时需要写入数据库:1、数据包含的TAG中有需要存入数据库的标识,如“DB”;2、由数据处理程序的逻辑决定,如当数据产生于某段时间内的数据需要写入数据库,而其他时间段的数据不需要写入。采用上述技术方案的有益效果是:本专利技术基于消息队列的异步数据传输通道,通过Pub/Sub的消息主题模式,实现数据在传输过程中的数据过滤、处理和条件存储;提出一种基于NoSQL数据库集群进行实时数据读写,并集成传统关系型数据库的系统框架,实现对历史遗留数据或系统的兼容,并实现对基于SQL查询的应用开发的兼容。本专利技术提供了一种灵活的、可动态部署的、可插拔的实时数据处理框架,便于针对不同的应用环境和需求,快速部署和实现相应的数据处理系统,使得易于将服务云化,变得可伸缩、可扩展,提高计算资源的使用效率和缩短服务开发与部署时间。附图说明图1为本专利技术所涉及实时数据处理与存储系统框图;图2为本专利技术所涉实时数据处理与存储系统的数据过滤与处理应用框架;图3为本专利技术所涉数据过滤与处理过程示意图;图4为系统消息主题的数据结构示意图;图5为本专利技术所涉及Pub/Sub的消息主题数据结构示意图;图6为本专利技术所涉及数据过滤引擎对数据过滤的示意图一;图7为本专利技术所涉及数据过滤引擎对数据过滤的示意图二;图8为本专利技术所涉及数据过滤引擎对数据过滤的示意图三;图9为本专利技术所涉及传输数据的示意图。具体实施方式以下结合附图和本专利技术优选的具体实施例对本专利技术的内容作进一步地说明。所举实例只用于解释本专利技术,并非用于限定本专利技术的范围。如图1至图9中所示,本方案中所述的实时数据处理与存储系统,本专利技术所涉及的系统是基于Pub/Sub的消息传输模式,将数据采集端、应用端、处理端、存储端以及展示端通过松耦合的方式进行连接,彼此交互,形成面向服务的系统架构,使得整个系统是一个灵活的、易于扩展的服务开发框架,并实现一个实时数据处理系统,其中包括:本文档来自技高网...
【技术保护点】
实时数据处理与存储系统,所述系统是基于Pub/Sub的消息传输模式,将数据采集端、应用端、处理端、存储端以及展示端通过松耦合的方式进行连接,彼此交互,形成面向服务的系统架构,其特征在于:所述的系统包括消息队列服务模块、应用程序模块、数据库系统模块、实时数据展示模块和数据过滤引擎模块,所述的消息队列服务模块为一个实时数据通道代理,其实现可基于通信协议包括AMQP、MQTT、Websocket和TCP,所述的消息队列服务模块为实时数据传输提供管道;所述的应用程序模块通过系统A接口(其中A接口的实现方式依赖于消息队列服务装置所采用的通信协议)实现数据的输入或输出,应用程序模块运行的主体包括个人计算机(PC)、服务器、移动终端(如智能手机)和嵌入式设备;所述的实时数据展示模块为一个基于Web的页面程序,其通过HTTP、Websocket或MQ协议从消息队列服务装置获取数据,并实时展示;所述的数据库系统模块包括关系型数据库系统和NoSQL数据库;所述的数据过滤引擎模块为一个脚本程序执行环境,所述数据过滤引擎模块,所述数据过滤引擎模块的程序运行时的计算机语言环境包括Javascript、Java、Perl、Python、Scala和Erlang。...
【技术特征摘要】
1.实时数据处理与存储系统,所述系统是基于Pub/Sub的消息传输模式,将数据采集端、应用端、处理端、存储端以及展示端通过松耦合的方式进行连接,彼此交互,形成面向服务的系统架构,其特征在于:所述的系统包括消息队列服务模块、应用程序模块、数据库系统模块、实时数据展示模块和数据过滤引擎模块,所述的消息队列服务模块为一个实时数据通道代理,其实现可基于通信协议包括AMQP、MQTT、Websocket和TCP,所述的消息队列服务模块为实时数据传输提供管道;所述的应用程序模块通过系统A接口(其中A接口的实现方式依赖于消息队列服务装置所采用的通信协议)实现数据的输入或输出,应用程序模块运行的主体包括个人计算机(PC)、服务器、移动终端(如智能手机)和嵌入式设备;所述的实时数据展示模块为一个基于Web的页面程序,其通过HTTP、Websocket或MQ协议从消息队列服务装置获取数据,并实时展示;所述的数据库系统模块包括关系型数据库系统和NoSQL数据库;所述的数据过滤引擎模块为一个脚本程序执行环境,所述数据过滤引擎模块,所述数据过滤引擎模块的程序运行时的计算机语言环境包括Javascript、Java、Perl、Python、Scala和Erlang。2.根据权利要求1中所述的实时数据处理与存储系统,其特征在于:所述系统还包括插拔式的数据处理插件模块,所述的插件模块直接作用于在传输通道中流动的数据,所述插件模块通过动态部署的方式提交到数据过滤引擎模块并运行,插件模块为程序源代码或编译后的程序文件。3.根据权利要求1中所述的实时数据处理与存储系统,其特征在于:所述的数据处理引擎模块根据需求订阅相应的消息主题,所述消息主题的数据结构包括一个类型(Type)、客户端标识(ClientID)和语义主...
【专利技术属性】
技术研发人员:犹杰,马帝,安谋,
申请(专利权)人:深圳前海大数点科技有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。