CN108629016A - 支持实时流计算面向大数据数据库控制系统、计算机程序 - Google Patents
支持实时流计算面向大数据数据库控制系统、计算机程序 Download PDFInfo
- Publication number
- CN108629016A CN108629016A CN201810431484.3A CN201810431484A CN108629016A CN 108629016 A CN108629016 A CN 108629016A CN 201810431484 A CN201810431484 A CN 201810431484A CN 108629016 A CN108629016 A CN 108629016A
- Authority
- CN
- China
- Prior art keywords
- data
- module
- real
- time
- configuration information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于计算机软件技术领域,公开了一种支持实时流计算面向大数据数据库控制系统、计算机程序,数据接口模块,读取接收的数据,并将数据发给数据预处理模块;数据预处理模块,读取数据接口模块传来的数据,并对数据进行预处理,再将预处理后的数据发给实时流计算模块;实时流计算模块,读取数据预处理模块传来的数据,对数据进行实时流计算,将得到的结果数据传给数据处理模块;数据处理模块,读取实时流计算模块传来的数据,对数据做最后的处理,再将处理后的数据存到Hbase数据库中。弥补Hbase在实时处理上的不足,也避免用户需要单独利用storm框架编写程序去达到数据处理的需求的难题。
Description
技术领域
本发明属于计算机软件技术领域,尤其涉及一种支持实时流计算面向大数据数据库控制系统、计算机程序。
背景技术
目前,业内常用的现有技术是这样的:随着技术的发展,计算机技术全面融入生活,世界上无时无刻都在产生大量的数据。其中,有很大一部分数据都是半结构化和非结构化,并且它们的价值会随着时间的推移而减少,如何使这海量的半结构化和非结构化的数据的价值得以最大的体现,是当今一大问题。对于海量节点构成的分布式系统,由于自然或是人为因素,节点故障事件是难以避免的。在分布式系统进行流计算时,往往会因为以下原因:1.服务器端收到请求慢或者压根没收到请求;2.服务器端响应慢;3.服务器端网络忙或服务器本身压力大,导致响应写不出去;4.服务器端序列化失败或调用端反序列化失败;5.客户端网络忙或客户端本身压力大,导致来不及读响应包,出现处理超时问题。超时问题的处理是当今分布式系统的一大困境。 Hadoop框架带来了批量数据处理,但是网络中大规模的数据的实时处理仍然是一个挑战。尽管现在已经有了一些实时流计算的框架,但是对这框架的应用需要较高的专业基础,不利于用户的使用。Hbase 全称为Hadoop Database,是一个具有高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PCServer上搭建起大规模结构化存储集群。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。所谓非结构化数据存储就是说HBase是基于列的而不是基于行的模式,这样有利于读写大数据内容。HBase是Google Bigtable的开源实现,与GoogleBigtable利用GFS作为其文件存储系统类似,HBase利用Hadoop HDFS作为其文件存储系统。Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据。Google Bigtable利用Chubby作为协同服务,HBase利用Zookeeper作为对应。Storm是一个开源的分布式实时计算系统,可以简单、可靠的处理大量的数据流。Storm有很多使用场景:如实时分析,在线机器学习,持续计算,分布式RPC,ETL等等。Storm支持水平扩展,具有高容错性,保证每个消息都会得到处理,而且处理速度很快(在一个小集群中,每个结点每秒可以处理数以百万计的消息)。Storm的部署和运维都很便捷,而且更为重要的是可以使用任意编程语言来开发应用。Redis(Remote DictionaryServer)是一种 Nosql技术,它是一个开源的高级k-v存储和数据结构存储系统。redis 在整个运行过程中,数据统统都是存储在内存中的,因此,性能是相当高的,读写能力强。hadoop框架能够存储网络产生的大规模的数据,但它对数据处理的实时性很差。无法应对这些数据的有效价值会随着时间的流逝而逐渐消失这一特性。而现在的实时流计算框架也不易使用。hadoop的自带的MapReduce数据处理是批处理,是针对于大批量的数据计算而设计的,所以实时性差。而现在的实时流计算框架对用户的专业能力要求比较高,不易于用户的使用。能够存储网络上产生的大规模数据,并及时对这些数据进行处理,避免数据价值的流失。
综上所述,现有技术存在的问题是:
(1)分布式系统存在服务器端收到请求慢或者压根没收到请求。
(2)服务器端响应慢;服务器端网络忙或服务器本身压力大,导致响应写不出去。
(3)服务器端序列化失败或调用端反序列化失败;客户端网络忙或客户端本身压力大,导致来不及读响应包,出现处理超时。
解决上述技术问题的难度和意义:
对于问题(1)主要解决办法是优化分布式系统中网络拓扑结构,保证网络物理连通,以及物理传输时间尽可能减少。并且优化网络传输协议实现过程以及网络请求内容,减少通信需要数据量,减少网络传输时间。
对于问题(2)(3)主要是关于负载均衡问题,这在分布式系统中非常常见,要解决这个问题,要建立好系统的负载均衡制度,系统能够随时根据当前系统的负载,自动的决策数据的存放和计算节点。这一问题的解决,将在很大程度上避免系统因为一个节点负载过大而导致数据丢失甚至系统崩溃的严重后果。
发明内容
针对现有技术存在的问题,本发明提供了一种支持实时流计算面向大数据数据库控制系统、计算机程序。
本发明是这样实现的,一种支持实时流计算面向大数据数据库控制系统,所述支持实时流计算面向大数据数据库控制系统包括:
数据接口模块,读取配置中心的配置信息,根据该配置信息读取接收的数据,并将数据发给数据预处理模块;
数据预处理模块,读取配置中心的配置信息,根据该配置信息读取数据接口模块传来的数据,并对数据进行预处理,再将预处理后的数据发给实时流计算模块;
实时流计算模块,读取配置中心的配置信息,根据该配置信息读取数据预处理模块传来的数据,对数据进行实时流计算,将得到的结果数据传给数据处理模块;
数据处理模块,读取配置中心的配置信息,根据该配置信息读取实时流计算模块传来的数据,对数据做最后的处理,再将处理后的数据存到Hbase数据库中;
Hbase数据库,存储数据处理模块传来的数据;
配置中心模块,对数据预处理模块、实时流计算模块和数据处理模块进行配置。
进一步,所述数据接口模块包括消息中间件模块。消息中间件模块:接收数据源的处理请求,读取配置中心的配置信息,根据配置信息中的读取策略读取数据,并把读取的数据传给数据预处理模块。
进一步,所述数据预处理模根据从配置中心读取的配置信息对数据可以进行以下四个方面的处理:空值处理:若在读取数据的过程中获取到某些字段存在空值,则可按照从配置中心的配置信息或定义将该字段的空值替换为预定数值或者不作任何处理;格式化数据:根据业务数据源中的各个字段的数据类型,进行数据格式的格式化操作;数据过滤:根据从配置中心的配置信息对字段进行过滤,提取数据内容,进行拆分和合并操作,满足业务规则要求。
进一步,所述实时流计算模块根据业务请求和从配置中心读取的配置信息组织驱动节点和工作节点形成计算流程拓扑并运行计算;计算实例包括一个驱动节点、多个工作节点和消息流;
进一步,所述实时流计算模块包括分发器模块、拓扑集群、监控模块、Redis缓存数据库、数据整合模块;
分发器:根据从配置中心读取的配置信息将数据流划分成一个个小的数据流,再根据从拓扑集群反馈的负载情况,分配工作流,并为每一个小数据流发送开始信号给监控模块;
拓扑集群:接收分发器传来的数据进行流计算,并将各个数据流在各个节点的结果和路径,存入Redis缓存数据库中作为发生错误进行恢复时的依据;当收到监控模块发送的数据处理超时信号时,从 Redis缓存数据库中取出超时的数据流数据,根据数据流的路径信息判断出错的节点位置,在出错节点处重新进行流计算;
监控模块:首先接收分发器的开始信号,从配置中心读取配置信息;若在指定时间内接收到数据整合模块发送的结束信号,则从Redis 数据库中删除关于该数据流的信息;若在指定时间内未接收到数据整合模块发送的结束信号,则向拓扑集群发送该数据流超时的信号;拓扑集群便会从Redis数据库中读取该数据流的信息进行恢复;
Redis缓存数据库:作为高速缓存,存储在拓扑集群中进行计算的数据流信息;
数据整合模块:每接收到一个从拓扑集群传来的数据流计算结果,向监控模块发送该数据流的结束信号,然后根据从配置中心读取的配置信息将经过拓扑集群计算的小数据流结果整合起来。
进一步,所述数据处理模块根据从配置中心读取的配置信息对数据进行整理。
本发明的另一目的在于提供一种所述支持实时流计算面向大数据数据库控制系统的支持实时流计算面向大数据数据库控制方法,所述支持实时流计算面向大数据数据库控制方法包括以下步骤:
步骤一,采集多种数据,引入分布式故障检测机制,提高数据采集的稳定性和可靠性;
步骤二,从配置中心读取配置信息加载相应的处理程序;
步骤三,处理海量实时数据,并将计算结果实时传输;
步骤四,从配置中心读取配置信息加载相应的处理程序;
步骤五,通过网页端进行配置。
本发明的另一目的在于提供一种实现所述支持实时流计算面向大数据数据库控制系统的计算机程序。
本发明的另一目的在于提供一种实现所述支持实时流计算面向大数据数据库控制系统的信息数据处理终端。
本发明的另一目的在于提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行所述的支持实时流计算面向大数据数据库控制系统。
综上所述,本发明的优点及积极效果为:能够利用storm框架与 Hbase数据库实现海量大数据的实时处理,弥补Hbase在实时处理上的不足,也避免用户需要单独利用storm框架编写程序去达到数据处理的需求的难题。而且利用配置中心实现了高度配置化,通过Web 页面进行配置,能够对数据接口模块的读取策略进行设置,使其可以按照用户的要求进行读取数据,避免过多无用的数据的传输。能够对数据预处理模块的预处理策略进行设置,可以完成以下四个方面的处理:空值处理:若在读取数据的过程中获取到某些字段存在空值,则可按照从配置中心的配置信息或定义将该字段的空值替换为预定数值或者不作任何处理;格式化数据:根据业务数据源中的各个字段的数据类型,进行数据格式的格式化操作。
本发明统一将数据类型转化为字符串类型;数据重构:根据从配置中心的配置信息进行字段拆分、合并等操作;数据过滤:根据从配置中心的配置信息对字段进行过滤,提取数据内容,进行拆分和合并操作,满足业务规则要求。能够对分发器模块的分割策略进行设置,使其可以让用户根据自己的需求来对数据流进行分割。能够对数据整合模块的数据整合策略进行设置,可以让用户按照自己需求对最后的运算结果进行拆分、合并、规范化等操作。并且利用了Redis数据库高速读写能力实现了流计算超时计算时进行错误恢复,在拓扑集群进行流计算的同时,将每个数据流进过每个节点的数据和节点ID存入数据库,当监控模块发现数据流超时时,拓扑集群就从Redis数据库中读取出该数据流的信息,判断数据流在哪个节点计算错误,然后进行恢复。
本发明解决了很多实际问题。第一,解决了海量数据的实时处理问题:Hbase本身作为一个面向列、可伸缩的分布式数据库系统,以列存储的格式在磁盘上存储数据,使其可以面对海量数据的存储问题。但Hbase主要数据处理是利用MapReduce的批处理技术,无法应对大量数据的价值随时间流逝而大幅度降低的特性。而本发明将流计算框架storm与Hbase结合,大大加强了数据处理的时效性,可以很好的对数据进行实时处理,避免数据的价值流失。第二,解决了大多数数据库无法按照用户的需求对数据进行处理,通常用户想要对数据源得到的数据进行处理,都需要自己额外编写程序来完成对数据的处理。这样大大地提升了对数据库用户的要求,不利于体现数据库的易用性。而本发明利用配置中心模块可以通过Web端对数据的处理过程进行控制,不需要用户额外编写程序来达到对数据进行处理的目的。这样大大的简化用户对数据库使用,也让数据库应该自身的高度配置化,可以更好去支持各个领域对本数据库的应用。第三,解决了流计算在运算过程中因为错误而导致超时无法处理的问题,本发明利用Redis 数据库作为高速缓存实时的记录各个数据流在拓扑集群中经过的各个节点的计算结果;当发生数据流计算超时时,拓扑集群可以读取Redis数据库中的超时数据流的信息,判断错误节点,进行恢复。避免了数据流因为错误一直停留在节点中,无法继续进行运算,也无法暂停,既影响了数据时效性,也使系统的资源无法得到更好的利用,甚至当数据流占据的节点过多时,会导致系统的瘫痪。第四、解决了大数据流的处理问题,本发明利用数据流分流的方法,将大的数据流分割成较小的数据流,可以更好的提高大数据流的处理速度,提高流计算的计算速度,并利用负载均衡机制,在一定程度上避免负载不均衡的问题。
附图说明
图1是本发明实施例提供的支持实时流计算面向大数据数据库控制系统结构示意图;
图中:1、数据接口模块;2、数据预处理模块;3、实时流计算模块;4、数据处理模块;5、配置中心模块;6、Hbase数据库。
图2是本发明实施例提供的支持实时流计算面向大数据数据库控制方法流程图。
图3为本发明实例提供的一种支持实时流计算的面向大数据的数据库系统功能模块结构图。
图4为本发明实例提供的实时流计算模块的内部结构图。
图5为本发明实例提供的支持实时流计算面向大数据数据库控制方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明解决了海量数据的实时处理问题;解决了大多数数据库无法按照用户的需求对数据进行处理;解决了流计算在运算过程中因为错误而导致超时无法处理的问题;解决了大数据流的处理问题。
如图1所示,本发明实施例提供的支持实时流计算面向大数据数据库控制系统包括:数据接口模块1、数据预处理模块2、实时流计算模块3、数据处理模块4、配置中心模块5、Hbase数据库6。
数据接口模块1,用于采集多种数据来源的数据接口模块,并引入分布式故障检测机制,提高数据采集的稳定性和可靠性。
数据预处理模块2,用于从配置中心模块5读取配置信息加载相应的处理程序。
实时流计算模块3,用于处理海量实时数据,并将计算结果实时传给数据处理模块4。
数据处理模块4,用于从配置中心模块5读取配置信息加载相应的处理程序。
配置中心模块5,用于通过网页端对数据接口模块1、数据预处理模块2、实时流计算模块3、数据处理模块4进行配置。
Hbase数据库6,用于存储数据处理模块4传来的数据。
在本发明的优选实施例中:
数据接口模块1读取配置中心的配置信息,根据该配置信息读取接收的数据,并将数据发给数据预处理模块2。
数据预处理模块2读取配置中心的配置信息,根据该配置信息读取数据接口模块1传来的数据,并对数据进行预处理,再将预处理后的数据发给实时流计算模块3。
实时流计算模块3:读取配置中心的配置信息,根据该配置信息读取数据预处理模块2传来的数据,对数据进行实时流计算,将得到的结果数据传给数据处理模块4。
数据处理模块4:读取配置中心的配置信息,根据该配置信息读取实时流计算模块3传来的数据,对数据做最后的处理,再将处理后的数据存到Hbase数据库6中。
Hbase数据库6:存储数据处理模块4传来的数据。
配置中心模块5:对数据预处理模块2、实时流计算模块3和数据处理模块4进行配置。
数据接口模块1包括消息中间件模块。消息中间件模块:接收数据源的处理请求,读取配置中心的配置信息,根据配置信息中的读取策略读取数据,并把读取的数据传给数据预处理模块。
数据预处理模块2会根据从配置中心读取的配置信息对数据可以进行以下四个方面的处理:空值处理:若在读取数据的过程中获取到某些字段存在空值,则可按照从配置中心的配置信息或定义将该字段的空值替换为预定数值或者不作任何处理。格式化数据:根据业务数据源中的各个字段的数据类型,进行数据格式的格式化操作。例如,统一将数据类型转化为字符串类型。数据重构:根据从配置中心的配置信息进行字段拆分、合并等操作。数据过滤:根据从配置中心的配置信息对字段进行过滤,提取数据内容,进行拆分和合并操作,满足业务规则要求。
实时流计算模块3,会根据业务请求和从配置中心读取的配置信息组织驱动节点和工作节点形成计算流程拓扑并运行计算。计算实例包括一个驱动节点、多个工作节点和消息流;
实时流计算模块3,包括分发器模块、拓扑集群、监控模块、Redis 缓存数据库、数据整合模块。分发器:根据从配置中心读取的配置信息将数据流划分成一个个小的数据流,再根据从拓扑集群反馈的负载情况,分配工作流,并为每一个小数据流发送开始信号给监控模块。拓扑集群:接收分发器传来的数据进行流计算,并将各个数据流在各个节点的结果和路径,存入Redis缓存数据库中作为发生错误进行恢复时的依据。当收到监控模块发送的数据处理超时信号时,从Redis 缓存数据库中取出超时的数据流数据,根据数据流的路径信息判断出错的节点位置,在出错节点处重新进行流计算。监控模块:首先接收分发器的开始信号,从配置中心读取配置信息。若在指定时间内接收到数据整合模块发送的结束信号,则从Redis数据库中删除关于该数据流的信息;若在指定时间内未接收到数据整合模块发送的结束信号,则向拓扑集群发送该数据流超时的信号。拓扑集群便会从Redis数据库中读取该数据流的信息进行恢复。Redis缓存数据库:作为高速缓存,存储在拓扑集群中进行计算的数据流信息。数据整合模块:每接收到一个从拓扑集群传来的数据流计算结果,就向监控模块发送该数据流的结束信号,然后根据从配置中心读取的配置信息将经过拓扑集群计算的小数据流结果整合起来。
数据处理模块4,会根据从配置中心读取的配置信息对数据进行整理。例如将数据按照Hbase数据存储格式进行规范化处理,又或者提取数据内容,进行拆分和合并操作,使其满足业务规则要求。将数据整理完后,将数据存入Hbase数据库。
如图2所示,本发明实施例提供的支持实时流计算面向大数据数据库控制方法包括以下步骤:
S201:采集多种数据,引入分布式故障检测机制,提高数据采集的稳定性和可靠性;
S202:从配置中心读取配置信息加载相应的处理程序;
S203:处理海量实时数据,并将计算结果实时传输;
S204:从配置中心读取配置信息加载相应的处理程序;
S205:通过网页端进行配置。
下面结合具体实施例对本发明的应用原理作进一步的描述.
实施例1
图3为本发明实例1提供的一种支持实时流计算的面向大数据的数据库系统功能模块结构图。如图3所示,包括数据接口模块,数据预处理模块,实时流计算模块,数据处理模块,配置中心以及Hbase 数据库,其中:
步骤101、数据接口模块:读取配置中心的配置信息,根据该配置信息读取接收的数据,并将数据发给数据预处理模块。
(1)包括消息中间件模块,可以是ActiveMQ消息中间件,接收数据源的处理请求,读取配置中心的配置信息,根据配置信息中的读取策略读取数据,并把读取的数据传给数据预处理模块。
步骤102、数据预处理模块:读取配置中心的配置信息,根据该配置信息调用相应程序对数据可以进行以下四个方面的处理:空值处理:若在读取数据的过程中获取到某些字段存在空值,则可按照从配置中心的配置信息或定义将该字段的空值替换为预定数值或者不作任何处理。格式化数据:根据业务数据源中的各个字段的数据类型,进行数据格式的格式化操作。例如,统一将数据类型转化为字符串类型。数据重构:根据从配置中心的配置信息进行字段拆分、合并等操作。数据过滤:根据从配置中心的配置信息对字段进行过滤,提取数据内容,进行拆分和合并操作,满足业务规则要求。再将处理后的数据传给实时流计算模块。
步骤103、实时流计算模块:读取配置中心的配置信息,根据该配置信息读取数据预处理模块传来的数据,对数据进行实时流计算,将得到的结果数据传给数据处理模块。
步骤104、数据处理模块:读取配置中心的配置信息,根据该配置信息读取实时流计算模块传来的数据,对数据做最后的处理,再将处理后的数据存到Hbase数据库中。例如将数据按照Hbase数据存储格式进行规范化处理,又或者提取数据内容,进行拆分和合并操作,使其满足业务规则要求。将数据整理完后,将数据存入Hbase数据库。
步骤105、Hbase数据库:存储数据处理模块传来的数据。
步骤106、配置中心:对数据预处理模块、实时流计算模块和数据处理模块进行配置。
实施例2
图4为实例1中的实时流计算模块的内部结构图,包括分发器模块、拓扑集群、Redis数据库、监控模块、数据整合模块,其中:
步骤201、分发器根据从配置中心读取的配置信息将数据流划分成一个个小的数据流,分的数据流也不是越多越好,数据流分割过多会对分割数据流和合并形成巨大压力。所以,分割的小数据流的数目应该综合考虑数据处理速度和数据到达速度后决定。一般来说,应该整个数据流的数据处理速度应该大于等于数据更新速度,这样可以使得到达的数据都会被及时的处理,进而保证结果的实时性和准确性。因为在拓扑集群中各个节点的硬件条件不同,会导致不同节点的数据处理速度不同。如果没有一个好的控制负载均衡的方案,则会对处理效率和结果产生不良的影响。主要体现在以下两个方面:1.由于各个主机的处理速度不同,如果没有有效的负载均衡机制,可能导致某些处理速度较慢的流水线可能无法应对当前的数据压力,而某些处理速度较快的流水线则可能长时间处于空闲状态。拖慢整个数据处理流程。 2.如果没有有效的负载均衡机制,因为各流水线的数据处理速度差异较大,有可能导致后到的数据反而先处理完成,影响处理结果的准确性。因此本发明根据从拓扑集群反馈的负载情况,分配工作流。主要考虑两个因素:一个是某条流水线待处理元组个数,另一个是该流水线的处理速度。然后选择二者比值最小的流水线作为本次分配的最优流水线。如果某流水线的待处理元组个数为0,则直接选择该流水线作为本次分配的最优流水线。然后为每一个小数据流发送开始信号给监控模块。
步骤202、拓扑集群接收分发器传来的数据进行流计算,并将各个数据流在各个节点的结果和路径,存入Redis缓存数据库中作为发生错误进行恢复时的依据。当收到监控模块发送的数据处理超时信号时,从Redis缓存数据库中取出超时的数据流数据,根据数据流的路径信息判断出错的节点位置,在出错节点处重新进行流计算。基于时效性,可以采用Storm框架,Storm是一种开源的大数据处理系统集群.
步骤203、Redis缓存数据库:作为高速缓存,存储在拓扑集群中进行计算的数据流信息。
步骤204、监控模块:接收分发器的开始信号,根据从配置中心读取的配置信息,若在指定时间内接收到数据整合模块发送的结束信号,则从Redis数据库中删除关于该数据流的信息;若在指定时间内未接收到数据整合模块发送的结束信号,则向拓扑集群发送该数据流超时的信号,拓扑集群便会从Redis数据库中读取该数据流的信息进行恢复。
步骤205、数据整合模块:每接收到一个从拓扑集群传来的数据流计算结果就向监控模块发送该数据流的结束信号,然后根据从配置中心读取的配置信息将经过拓扑集群计算的小数据流结果整合起来。
如图5所示,本发明实施例提供的支持实时流计算面向大数据数据库控制方法包括以下步骤:
步骤301、用户在Web端对数据库各个模块进行配置,例如对数据接口模块的读取策略、数据预处理模块的预处理策略、实时流计算模块的数据流分割策略、超时处理策略、数据整合策略以及数据处理模块的数据处理策略等等。将配置信息保存为xml文件,存入配置中心。
步骤302、启动集群中每个节点的数据库服务,数据库服务开始工作,等待接收数据。
步骤303、数据接口模块中的消息中间件模块接收到数据处理请求,读取配置中心的配置信息,根据配置信息读取数据,并将数据传给数据预处理模块。
步骤304、数据预处理模块:读取配置中心的配置信息,根据该配置信息调用相应程序可以对数据进行以下四个方面的处理:空值处理:若在读取数据的过程中获取到某些字段存在空值,则可按照从配置中心的配置信息或定义将该字段的空值替换为预定数值或者不作任何处理。格式化数据:根据业务数据源中的各个字段的数据类型,进行数据格式的格式化操作。例如,统一将数据类型转化为字符串类型。数据重构:根据从配置中心的配置信息进行字段拆分、合并等操作。数据过滤:根据从配置中心的配置信息对字段进行过滤,提取数据内容,进行拆分和合并操作,满足业务规则要求。再将处理后的数据传给实时流计算模块。
步骤305、分发器根据从配置中心读取的配置信息中数据流分割策略将数据流划分成一个个小的数据流。分的数据流也不是越多越好,数据流分割过多会对分割数据流和合并形成巨大压力。所以,分割的小数据流的数目应该综合考虑数据处理速度和数据到达速度后决定,一般来说,整个数据流的数据处理速度应该大于等于数据更新速度,这样可以使得到达的数据都会被及时的处理,进而保证结果的实时性和准确性。因为在拓扑集群中各个节点的硬件条件不同,会导致不同节点的数据处理速度不同。如果没有一个好的控制负载均衡的方案,则会对处理效率和结果产生不良的影响,主要体现在以下两个方面: 1.由于各个主机的处理速度不同,如果没有有效的负载均衡机制,可能导致某些处理速度较慢的流水线可能无法应对当前的数据压力,而某些处理速度较快的流水线则可能长时间处于空闲状态,拖慢整个数据处理流程;2.如果没有有效的负载均衡机制,因为各流水线的数据处理速度差异较大,有可能导致后到的数据反而先处理完成,影响处理结果的准确性。因此本发明根据从拓扑集群反馈的负载情况,分配工作流;主要考虑两个因素:一个是某条流水线待处理元组个数,另一个是该流水线的处理速度。然后选择二者比值最小的流水线作为本次分配的最优流水线。如果某流水线的待处理元组个数为0,则直接选择该流水线作为本次分配的最优流水线。然后为每一个小数据流发送开始信号给监控模块。
步骤306、监控模块接收到数据流的开始信号,然后读取配置中心的配置信息,获取计算时限,开始计时。
步骤307、拓扑集群接收分发器模块传来的数据流,读取配置中心的配置文件,解析数据流计算处理路径信息。
步骤308、根据解析后的数据流计算处理路径信息,开始确立驱动节点,将数据流从驱动节点开始进行计算,并按照路径信息,依次进行计算。
步骤309、在计算的同时,将各数据流经过的计算路径中各个节点的数据存入Redis数据库中,留作超时时进行重新计算的副本。
步骤310、Redis数据库存储拓扑集群传来的各节点的数据流数据。
步骤311、拓扑集群计算结束后,将计算后的结果传给数据整合模块,数据整合模块接收数据流,并为每一个数据流发送结束信号给监控模块。
步骤312、监控模块接收到所有数据流的结束信号。
步骤313、数据整合模块读取配置中心的配置信息,根据配置信息中的整合策略,调用相应的程序将小的数据流整合成大的数据流,最后再将整合后的数据流传给数据处理模块。
步骤314、数据处理模块读取配置中心的配置信息,根据配置信息中的数据整理策略调用相应的程序对数据进行最后的整理。例如:将数据按照Hbase数据存储格式进行规范化处理,又或者提取数据内容,进行拆分和合并操作,使其满足业务规则要求。
步骤315、数据处理模块将整理后的数据存入Hbase数据库。
步骤316、Hbase数据库存储数据处理模块传来的数据。
步骤317、监控模块在接收到分发器的数据流开始信号时,便会开始计时,等待数据整合模块接收到计算结果后发送的结束信号。
步骤318、根据配置中心的配置信息中设置的计算时限进行超时处理。如果在时限之内,监控模块接收到结束信号,则会依次进行步骤319、314、315、316。如果超过时限,监控模块还未收到结束信号,则会跳转到步骤321。
步骤319、监控模块发送信号,将Redis数据库中的在时限之内接收到结束信号数据流的数据删除,避免Redis数据库存储数据过多,造成读写速度下降,甚至丢失数据的问题。
步骤320、拓扑集群接收到监控模块的数据流超时信号后,读取配置中心的配置信息,根据配置信息中的超时处理策略,从Redis数据库中读取关于超时数据流的数据。并进行步骤308。
步骤321、监控模块发送数据流超时信息给拓扑集群。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种支持实时流计算面向大数据数据库控制系统,其特征在于,所述支持实时流计算面向大数据数据库控制系统包括:
数据接口模块,读取配置中心的配置信息,根据该配置信息读取接收的数据,并将数据发给数据预处理模块;
数据预处理模块,读取配置中心的配置信息,根据该配置信息读取数据接口模块传来的数据,并对数据进行预处理,再将预处理后的数据发给实时流计算模块;
实时流计算模块,读取配置中心的配置信息,根据该配置信息读取数据预处理模块传来的数据,对数据进行实时流计算,将得到的结果数据传给数据处理模块;
数据处理模块,读取配置中心的配置信息,根据该配置信息读取实时流计算模块传来的数据,对数据做最后的处理,再将处理后的数据存到Hbase数据库中;
Hbase数据库,存储数据处理模块传来的数据;
配置中心模块,对数据预处理模块、实时流计算模块和数据处理模块进行配置。
2.如权利要求1所述的支持实时流计算面向大数据数据库控制系统,其特征在于,所述数据接口模块包括消息中间件模块。消息中间件模块:接收数据源的处理请求,读取配置中心的配置信息,根据配置信息中的读取策略读取数据,并把读取的数据传给数据预处理模块。
3.如权利要求1所述的支持实时流计算面向大数据数据库控制系统,其特征在于,所述数据预处理模根据从配置中心读取的配置信息对数据可以进行以下四个方面的处理:空值处理:若在读取数据的过程中获取到某些字段存在空值,则可按照从配置中心的配置信息或定义将该字段的空值替换为预定数值或者不作任何处理;格式化数据:根据业务数据源中的各个字段的数据类型,进行数据格式的格式化操作;数据过滤:根据从配置中心的配置信息对字段进行过滤,提取数据内容,进行拆分和合并操作,满足业务规则要求。
4.如权利要求1所述的支持实时流计算面向大数据数据库控制系统,其特征在于,所述实时流计算模块根据业务请求和从配置中心读取的配置信息组织驱动节点和工作节点形成计算流程拓扑并运行计算;计算实例包括一个驱动节点、多个工作节点和消息流。
5.如权利要求1所述的支持实时流计算面向大数据数据库控制系统,其特征在于,所述实时流计算模块包括分发器模块、拓扑集群、监控模块、Redis缓存数据库、数据整合模块;
分发器:根据从配置中心读取的配置信息将数据流划分成一个个小的数据流,再根据从拓扑集群反馈的负载情况,分配工作流,并为每一个小数据流发送开始信号给监控模块;
拓扑集群:接收分发器传来的数据进行流计算,并将各个数据流在各个节点的结果和路径,存入Redis缓存数据库中作为发生错误进行恢复时的依据;当收到监控模块发送的数据处理超时信号时,从Redis缓存数据库中取出超时的数据流数据,根据数据流的路径信息判断出错的节点位置,在出错节点处重新进行流计算;
监控模块:首先接收分发器的开始信号,从配置中心读取配置信息;若在指定时间内接收到数据整合模块发送的结束信号,则从Redis数据库中删除关于该数据流的信息;若在指定时间内未接收到数据整合模块发送的结束信号,则向拓扑集群发送该数据流超时的信号;拓扑集群便会从Redis数据库中读取该数据流的信息进行恢复;
Redis缓存数据库:作为高速缓存,存储在拓扑集群中进行计算的数据流信息;
数据整合模块:每接收到一个从拓扑集群传来的数据流计算结果,向监控模块发送该数据流的结束信号,然后根据从配置中心读取的配置信息将经过拓扑集群计算的小数据流结果整合起来。
6.如权利要求1所述的支持实时流计算面向大数据数据库控制系统,其特征在于,所述数据处理模块根据从配置中心读取的配置信息对数据进行整理。
7.一种如权利要求1所述支持实时流计算面向大数据数据库控制系统的支持实时流计算面向大数据数据库控制方法,其特征在于,所述支持实时流计算面向大数据数据库控制方法包括以下步骤:
步骤一,采集多种数据,引入分布式故障检测机制,提高数据采集的稳定性和可靠性;
步骤二,从配置中心读取配置信息加载相应的处理程序;
步骤三,处理海量实时数据,并将计算结果实时传输;
步骤四,从配置中心读取配置信息加载相应的处理程序;
步骤五,通过网页端进行配置。
8.一种实现权利要求1~6任意一项所述支持实时流计算面向大数据数据库控制系统的计算机程序。
9.一种实现权利要求1~6任意一项所述支持实时流计算面向大数据数据库控制系统的信息数据处理终端。
10.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-6任意一项所述的支持实时流计算面向大数据数据库控制系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810431484.3A CN108629016B (zh) | 2018-05-08 | 2018-05-08 | 支持实时流计算面向大数据数据库控制系统、计算机程序 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810431484.3A CN108629016B (zh) | 2018-05-08 | 2018-05-08 | 支持实时流计算面向大数据数据库控制系统、计算机程序 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108629016A true CN108629016A (zh) | 2018-10-09 |
CN108629016B CN108629016B (zh) | 2022-05-24 |
Family
ID=63695840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810431484.3A Active CN108629016B (zh) | 2018-05-08 | 2018-05-08 | 支持实时流计算面向大数据数据库控制系统、计算机程序 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108629016B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109492040A (zh) * | 2018-11-06 | 2019-03-19 | 深圳航天智慧城市系统技术研究院有限公司 | 一种适用于数据中心海量短报文数据处理的系统 |
CN110321223A (zh) * | 2019-07-03 | 2019-10-11 | 湖南大学 | Coflow协同作业流调度感知的数据流划分方法与装置 |
CN112765130A (zh) * | 2021-01-20 | 2021-05-07 | 银盛支付服务股份有限公司 | 一种数据仓库构建方法、系统、计算机设备及存储介质 |
CN113360261A (zh) * | 2021-06-04 | 2021-09-07 | 上海天旦网络科技发展有限公司 | 流处理中数据阻塞的处理系统、方法、介质及设备 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7313613B1 (en) * | 2002-01-03 | 2007-12-25 | Microsoft Corporation | System and method facilitating network diagnostics and self-healing |
US20090125636A1 (en) * | 2007-11-13 | 2009-05-14 | Qiong Li | Payload allocation methods for scalable multimedia servers |
CN101833497A (zh) * | 2010-03-30 | 2010-09-15 | 山东高效能服务器和存储研究院 | 一种基于专家系统方法的计算机故障管理系统 |
CN102880475A (zh) * | 2012-10-23 | 2013-01-16 | 上海普元信息技术股份有限公司 | 计算机软件系统中基于云计算的实时事件处理系统及方法 |
CN103150324A (zh) * | 2012-12-26 | 2013-06-12 | 人民搜索网络股份公司 | 一种基于链式处理的数据收集系统及其方法 |
US20150199279A1 (en) * | 2014-01-14 | 2015-07-16 | Qualcomm Incorporated | Method and system for method for tracking transactions associated with a system memory management unit of a portable computing device |
CN105678398A (zh) * | 2015-12-24 | 2016-06-15 | 国家电网公司 | 基于大数据技术的电力负荷预测方法及基于该方法的研究应用系统 |
CN105677836A (zh) * | 2016-01-05 | 2016-06-15 | 北京汇商融通信息技术有限公司 | 一种同时支持离线数据和实时在线数据的大数据处理解决系统 |
CN105701596A (zh) * | 2015-12-24 | 2016-06-22 | 国家电网公司 | 一种基于大数据技术的配网抢修精益化方法以及管理系统 |
CN107016128A (zh) * | 2017-05-16 | 2017-08-04 | 郑州云海信息技术有限公司 | 一种数据处理方法及装置 |
CN107181612A (zh) * | 2017-05-08 | 2017-09-19 | 深圳市众泰兄弟科技发展有限公司 | 一种基于大数据的可视化网络安全监控方法 |
CN107193909A (zh) * | 2017-05-08 | 2017-09-22 | 杭州东方通信软件技术有限公司 | 数据处理方法及系统 |
-
2018
- 2018-05-08 CN CN201810431484.3A patent/CN108629016B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7313613B1 (en) * | 2002-01-03 | 2007-12-25 | Microsoft Corporation | System and method facilitating network diagnostics and self-healing |
US20090125636A1 (en) * | 2007-11-13 | 2009-05-14 | Qiong Li | Payload allocation methods for scalable multimedia servers |
CN101833497A (zh) * | 2010-03-30 | 2010-09-15 | 山东高效能服务器和存储研究院 | 一种基于专家系统方法的计算机故障管理系统 |
CN102880475A (zh) * | 2012-10-23 | 2013-01-16 | 上海普元信息技术股份有限公司 | 计算机软件系统中基于云计算的实时事件处理系统及方法 |
CN103150324A (zh) * | 2012-12-26 | 2013-06-12 | 人民搜索网络股份公司 | 一种基于链式处理的数据收集系统及其方法 |
US20150199279A1 (en) * | 2014-01-14 | 2015-07-16 | Qualcomm Incorporated | Method and system for method for tracking transactions associated with a system memory management unit of a portable computing device |
CN105678398A (zh) * | 2015-12-24 | 2016-06-15 | 国家电网公司 | 基于大数据技术的电力负荷预测方法及基于该方法的研究应用系统 |
CN105701596A (zh) * | 2015-12-24 | 2016-06-22 | 国家电网公司 | 一种基于大数据技术的配网抢修精益化方法以及管理系统 |
CN105677836A (zh) * | 2016-01-05 | 2016-06-15 | 北京汇商融通信息技术有限公司 | 一种同时支持离线数据和实时在线数据的大数据处理解决系统 |
CN107181612A (zh) * | 2017-05-08 | 2017-09-19 | 深圳市众泰兄弟科技发展有限公司 | 一种基于大数据的可视化网络安全监控方法 |
CN107193909A (zh) * | 2017-05-08 | 2017-09-22 | 杭州东方通信软件技术有限公司 | 数据处理方法及系统 |
CN107016128A (zh) * | 2017-05-16 | 2017-08-04 | 郑州云海信息技术有限公司 | 一种数据处理方法及装置 |
Non-Patent Citations (1)
Title |
---|
曾文静: "Storm在电力大数据分析平台中的研究与应用", 《中国优秀博硕士学位论文全文数据库(硕士) 工程科技Ⅱ辑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109492040A (zh) * | 2018-11-06 | 2019-03-19 | 深圳航天智慧城市系统技术研究院有限公司 | 一种适用于数据中心海量短报文数据处理的系统 |
CN110321223A (zh) * | 2019-07-03 | 2019-10-11 | 湖南大学 | Coflow协同作业流调度感知的数据流划分方法与装置 |
CN110321223B (zh) * | 2019-07-03 | 2021-08-17 | 湖南大学 | Coflow协同作业流调度感知的数据流划分方法与装置 |
CN112765130A (zh) * | 2021-01-20 | 2021-05-07 | 银盛支付服务股份有限公司 | 一种数据仓库构建方法、系统、计算机设备及存储介质 |
CN113360261A (zh) * | 2021-06-04 | 2021-09-07 | 上海天旦网络科技发展有限公司 | 流处理中数据阻塞的处理系统、方法、介质及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108629016B (zh) | 2022-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108629016A (zh) | 支持实时流计算面向大数据数据库控制系统、计算机程序 | |
AU2017218964B2 (en) | Cloud-based distributed persistence and cache data model | |
CN109034993A (zh) | 对账方法、设备、系统及计算机可读存储介质 | |
EP4191411A1 (en) | Distributed training method based on end-to-end adaption, and device | |
CN110308984B (zh) | 一种用于处理地理分布式数据的跨集群计算系统 | |
WO2021258831A1 (zh) | 数据处理方法及系统 | |
CN101957863A (zh) | 数据并行处理方法、装置及系统 | |
CN104268143B (zh) | Xml数据的处理方法和装置 | |
EP3172682B1 (en) | Distributing and processing streams over one or more networks for on-the-fly schema evolution | |
US20190208011A1 (en) | Accelerating data replication using multicast and non-volatile memory enabled nodes | |
CN104320482A (zh) | 一种银行柜员前端系统 | |
WO2023065629A1 (zh) | 一种对话管理方法、系统、终端及存储介质 | |
US20190327342A1 (en) | Methods and electronic devices for data transmission and reception | |
CN113872810A (zh) | 一种业务仿真方法、装置、电子设备及存储介质 | |
WO2023125630A1 (zh) | 一种数据管理方法及相关装置 | |
CN106570153A (zh) | 一种海量url的数据提取方法及系统 | |
CN106570151A (zh) | 一种海量文件的数据收集处理方法及系统 | |
US11790103B2 (en) | Adaptive data loss prevention | |
CN106570152B (zh) | 一种手机号码的海量提取方法及系统 | |
Ye | Research on the key technology of big data service in university library | |
WO2023221644A1 (zh) | 一种基于云边协同系统的AIoT设备复用建模化方法 | |
US20080082473A1 (en) | Peer based event conversion | |
CN112612453A (zh) | RESTful服务驱动的JS对象简谱数据互换平台 | |
CN206948385U (zh) | 一种大数据智能化分析运算处理系统 | |
US12093276B1 (en) | Emulating a non-relational database on a relational database with a distributed data store |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230104 Address after: 215011 1710-4, Floor 17, Building 4, No. 209, Zhuyuan Road, High tech Zone, Suzhou, Jiangsu Province Patentee after: Jiangsu heheguan Wen Network Technology Co.,Ltd. Address before: 610225, No. 24, Section 1, Xuefu Road, Southwest Economic Development Zone, Chengdu, Sichuan Patentee before: CHENGDU University OF INFORMATION TECHNOLOGY |