CN103595800B - 一种数据实时分发处理装置及方法 - Google Patents
一种数据实时分发处理装置及方法 Download PDFInfo
- Publication number
- CN103595800B CN103595800B CN201310581497.6A CN201310581497A CN103595800B CN 103595800 B CN103595800 B CN 103595800B CN 201310581497 A CN201310581497 A CN 201310581497A CN 103595800 B CN103595800 B CN 103595800B
- Authority
- CN
- China
- Prior art keywords
- data
- real
- time
- distribution
- warehouse
- 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.)
- Active
Links
- 238000009826 distribution Methods 0.000 title claims abstract description 257
- 238000000034 method Methods 0.000 title abstract description 14
- 238000003672 processing method Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 5
- 238000012790 confirmation Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000010224 classification analysis Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种数据实时分发处理装置及方法,涉及海量数据分发处理领域,提高多个并发数据源的海量数据实时分发处理的实时性,减少数据积压。实时分发入库模块接收一个或者多个数据源发送的数据流,并查询本模块的当前入库状态,如果所述当前入库状态满足所述数据流的入库需求,则将所述数据流存入数据集中存储模块中,如果所述当前入库状态不满足所述数据流的入库需求,则根据所述多个实时分发入库模块的当前入库状态,确定满足数据流的入库需求的一个或多个实时分发入库模块,指示所确定的实时分发入库模块将所述数据流存入数据集中存储模块中;各个实时分发入库模块的数据流入库成功后,更新当前入库状态。
Description
技术领域
本发明涉及海量数据分发处理领域,特别涉及一种数据实时分发处理装置及方法。
背景技术
截至2013年7月,以***为例,全国31省平均移动用户(包括3G用户、2G用户及无线上网卡用户)的日均总流量0.9PB,通过在全国所有核心网网元设备部署分光采集,并对采集到的流量数据进行报文解析,全国31省移动用户平均生成流量话单文件9.5万个/日,流量记录600亿条/日,平均69.4万条/秒,流量记录占用存储空间为4TB/日。每条流量记录具有固定字段格式。
话单文件中流量记录的数据格式为:
用户号码 | 流量类型 | 访问地址 | 开始时间 | 结束时间 | 访问时长 | 终端IP | 访问IP |
位置信息 | 终端类型 | 上行流量 | 下行流量 | 总流量 | 内容类型 | 其他 |
通过收集和解析31个省分节点生成的流量记录,并实时分发给数据集中存储***进行实时入库、集中存储和统一分析,基于对移动用户数据业务流量分析的结果,可以实现多种应用,包括流量详单实时查询、流量实时管理、精准营销等。
但在***实际部署和数据应用中,由于海量数据来源于多个并发数据源,且每个数据源的数据量随时变化,导致采用现有技术的数据分发处理***无法根据各个数据源的数据量变化对数据进行实时的自适应分发处理,造成数据积压。由于数据无法实时入库也就无法满足应用的实时性需求。
因此,针对多个并发数据源的海量数据的实时分发处理是能否保证数据实时入库并满足应用实时数据需求的重要前提。
现有数据分发处理技术方案有:
公开号为CN103152392A的中国专利申请涉及一种云计算的计费方法和计费***,并具体公开了:***中具有多个数据采集器和数据汇聚器,具有负载均衡器,其监测数据汇聚器的当前负载能力,指示数据采集器向相应的负载较轻的数据汇聚器发送采集的数据,数据汇聚器对从数据采集器接收的数据块赋予唯一的标识符,该标识符指示该数据块来自于哪一个数据采集器;数据汇聚器将缓存中的数据块传送到分布式数据库进行存储。
但是,此方法,负载均衡器负责周期性的将接收到的数据平衡给各个数据汇聚器。导致无法根据各个数据源的数据量变化对数据进行实时的自适应分发处理,造成数据积压和入库延迟,从而无法满足应用的实时性需求。
发明内容
本发明要解决的技术问题是提供一种数据实时分发处理装置及方法,提高多个并发数据源的海量数据实时分发处理的实时性,减少数据积压。
为了解决上述问题,本发明提供了一种数据实时分发处理装置,包括数据集中存储模块和多个实时分发入库模块,
实时分发入库模块,用于接收一个或者多个数据源发送的数据流,并查询本模块的当前入库状态,如果所述当前入库状态满足所述数据流的入库需求,则将所述数据流存入数据集中存储模块中,如果所述当前入库状态不满足所述数据流的入库需求,则根据所述多个实时分发入库模块的当前入库状态,确定满足数据流的入库需求的一个或多个实时分发入库模块,指示所确定的实时分发入库模块将所述数据流存入数据集中存储模块中;在入库成功后,更新本模块的当前入库状态;还用于根据其它实时分发入库模块的指示将相应的数据流存入数据集中存储模块中;
所述数据集中存储模块,用于接收并存储各个实时分发入库模块发送的数据流。
进一步地,当前入库状态包括可用存储空间和入库速度,当可用存储空间高于数据流的需求空间并且入库速度高于设置的最低阈值时,满足所述数据流的入库需求。
进一步地,在本模块的当前入库状态都不满足所述数据流的入库需求时,所述实时分发入库模块确定满足数据流的入库需求的另一个实时分发入库模块,由确定的另一个实时分发入库模块将所述数据流存入数据集中存储模块中;
或者,
在所有实时分发入库模块的当前入库状态都不满足所述数据流的入库需求时,所述实时分发入库模块确定一个入库速度高于设置的最低阈值并且可用存储空间最接近数据流的入库需求的实时分发入库模块,再确定一个或者多个入库速度高于设置的最低阈值并且可用存储空间满足剩余数据流的入库需求的实时分发入库模块,由确定的两个或者多个时分发入库模块将所述数据流存入数据集中存储模块中;
或者,
在所有实时分发入库模块的当前入库状态都不满足所述数据流的入库需求时,所述实时分发入库模块确定两个或者多个实时分发入库模块入库速度高于设置的最低阈值、组合后可用存储空间满足数据流的入库需求并且最接近的数据流的入库需求,由所述两个或者多个实时分发入库模块将所述数据流存入数据集中存储模块中。
进一步地,所述实时分发入库模块包括实时分发子模块和数据入库子模块,
所述实时分发子模块,在接收一个或者多个数据源发送的数据流后,查询入库状态信息表,获得所述实时分发入库模块的当前入库状态,当所述实时分发入库模块的当前入库状态满足所述数据流的入库需求时,实时分发子模块发送数据入库消息给数据入库子模块;所述实时分发子模块还用于根据所述数据入库子模块发送的入库成功消息更新入库状态信息表;所述实时分发子模块还用于根据其它实时分发子模块的指示查询入库状态信息表,获得入库速度和分发存储空间信息,并将所述分发存储空间信息返回给其它实时分发子模块;所述分发存储空间小于或者等于可用存储空间;
所述数据入库子模块,将所述数据流存入数据集中存储模块中,并在存入成功后,发送入库成功消息给实时分发子模块。
进一步地,当所述实时分发入库模块的当前入库状态不满足所述数据流的入库需求时,向其他的所有或者部分实时分发入库模块的实时分发子模块发送数据分发请求消息,接收到数据分发请求消息的一个或者多个实时分发子模块查询入库状态信息表,并向发送数据分发请求消息的实时分发子模块返回数据分发确认消息;所述数据分发确认消息中携带入库速度和分发存储空间信息;
接收到数据分发确认消息的实时分发子模块,确定入库速度高于设置的最低阈值并且满足数据流的入库需求的另一个实时分发入库模块或者入库速度高于设置的最低阈值并且组合后满足数据流的入库需求的多个实时分发入库模块,并向另一个实时分发入库模块的实时分发子模块或者多个实时分发入库模块的实时分发子模块发送数据分发消息,并按照所述数据分发确认消息中的分发存储空间将所接收到的数据流进行实时分发,由另一个实时分发入库模块1的数据入库子模块或者多个实时分发入库模块的数据入库子模块将所述数据流存入数据集中存储模块中,并在存入成功后,发送入库成功消息给对应的实时分发子模块。
所述另一个实时分发入库模块的实时分发子模块或者多个实时分发入库模块的,还用于根据对应的数据入库子模块发送的入库成功消息更新入库状态信息表。
进一步地,当前入库状态还包括正在服务的其他实时分发子模块任务数N,在接收到一次其他实时分发子模块发送的数据分发请求消息时,N+1,在接收到一次数据入库子模块发送的IP地址为其他实时分发入库模块的地址的入库成功消息时,N-1。
进一步地,实时分发子模块还用于为所述一个或者多个数据源的数据流标记用于指示所述数据流来源的数据源标签;还用于向组合后满足数据流的入库需求的多个实时分发入库模块的实时分发子模块发送用于指示分发文件的文件名列表;
所述多个实时分发入库模块的数据入库子模块,还用于根据所述数据源标签和文件名列表,所述数据流存入数据集中存储模块中。
为了解决上述问题,本发明提供了一种数据实时分发处理方法,包括:
实时分发入库模块接收一个或者多个数据源发送的数据流,并查询本模块的当前入库状态,如果所述当前入库状态满足所述数据流的入库需求,则将所述数据流存入数据集中存储模块中,如果所述当前入库状态不满足所述数据流的入库需求,则根据所述多个实时分发入库模块的当前入库状态,确定满足数据流的入库需求的一个或多个实时分发入库模块,指示所确定的实时分发入库模块将所述数据流存入数据集中存储模块中;
数据集中存储模块接收并存储各个实时分发入库模块发送的数据流;
各个实时分发入库模块的数据流入库成功后,更新当前入库状态。
进一步地,当前入库状态包括可用存储空间和入库速度,当可用存储空间高于数据流的需求空间并且入库速度高于设置的最低阈值时,满足所述数据流的入库需求。
进一步地,确定满足数据流的入库需求的的一个或多个实时分发入库模块的策略为:
确定满足数据流的入库需求的另一个实时分发入库模块;
或者,
确定一个入库速度高于设置的最低阈值并且可用存储空间最接近数据流的入库需求的实时分发入库模块,再确定一个或者多个入库速度高于设置的最低阈值并且可用存储空间满足剩余数据流的入库需求的实时分发入库模块;
或者,
确定两个或者多个实时分发入库模块入库速度高于设置的最低阈值、组合后可用存储空间满足数据流的入库需求并且最接近的数据流的入库需求。
进一步地,确定组合后满足数据流的入库需求的多个实时分发入库模块的步骤包括:
所述实时分发入库模块向其他的所有或者部分实时分发入库模块发送数据分发请求消息,接收到数据分发请求消息的一个或者多个实时分发模块查询入库状态信息表,并向发送数据分发请求消息的实时分发子模块返回数据分发确认消息;所述数据分发确认消息中携带入库速度和分发存储空间信息;所述分发存储空间小于或者等于可用存储空间;
接收到数据分发确认消息的实时分发子模块,确定入库速度高于设置的最低阈值并且满足数据流的入库需求的另一个实时分发入库模块或者入库速度高于设置的最低阈值并且组合后满足数据流的入库需求的多个实时分发入库模块,并向所述另一个实时分发入库模块或者多个实时分发入库模块发送数据分发消息,并按照所述数据分发确认消息中的分发存储空间将所接收到的数据流进行实时分发。
进一步地,在实时分发子模块接收一个或者多个数据源发送的数据流后,为所述一个或者多个数据源的数据流标记用于指示所述数据流来源的数据源标签;
实时分发子模块在确定组合后满足数据流的入库需求的多个实时分发入库模块后,向组合后满足数据流的入库需求的多个实时分发入库模块发送用于指示分发文件的文件名列表;
所述多个实时分发入库模块根据所述数据源标签和文件名列表,所述数据流存入数据集中存储模块中。
采用本装置和方法根据不同数据源的数据量变化及数据实时分发处理能力,实时分发处理数据,充分提高数据分发处理***的处理效率,减少数据积压。并且通过数据源IP地址标记数据流,实现分布式数据入库,解决了集中存储***的数据入库无法对不同数据源信息进行分类存储和分类分析的问题,提高入库效率。
附图说明
图1是本发明实施例的数据实时分发处理装置的结构示意图;
图2是本发明实施例的实时分发入库模块的结构示意图;
图3为本发明实施例的数据实时分发处理方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
如图1所示,本发明实施例提供一种数据实时分发处理装置,包括数据集中存储模块2和多个实时分发入库模块1,
实时分发入库模块1,用于接收一个或者多个数据源发送的数据流,并查询本模块的当前入库状态,如果所述当前入库状态满足所述数据流的入库需求,则将所述数据流存入数据集中存储模块2中,如果所述当前入库状态不满足所述数据流的入库需求,则根据所述多个实时分发入库模块1的当前入库状态,确定满足数据流的入库需求的的一个或多个实时分发入库模块1,指示所确定的实时分发入库模块1将所述数据流存入数据集中存储模块2中;在入库成功后,更新本模块的当前入库状态;还用于根据其它实时分发入库模块1的指示将相应的数据流存入数据集中存储模块2中;
所述数据集中存储模块2,用于接收并存储各个实时分发入库模块1发送的数据流。
本发明的优选实施例中,当前入库状态存储在入库状态信息表,其中当前入库状态包括可用存储空间和入库速度,当可用存储空间高于数据流的需求空间并且入库速度高于设置的最低阈值时,满足所述数据流的入库需求。
入库状态信息表用于实时分发入库模块1管理入库状态信息。
当前实时分发入库模块1查询其他实时分发入库模块1的当前入库状态后,如果有其他的实时分发入库模块1满足所述数据流的入库需求,则利用单独的一个实时分发入库模块1将所述数据流存入数据集中存储模块2中。
在本实时分发入库模块1的当前入库状态不满足所述数据流的入库需求时,所述实时分发入库模块1确定满足数据流的入库需求的另一个实时分发入库模块1,由确定的另一个实时分发入库模块1将所述数据流存入数据集中存储模块2中;
在所有实时分发入库模块1的当前入库状态都不满足所述数据流的入库需求时,所述实时分发入库模块1确定组合后满足数据流的入库需求的多个实时分发入库模块1的方式可以为:
确定一个入库速度高于设置的最低阈值并且可用存储空间最接近数据流的入库需求的实时分发入库模块1,再确定一个或者多个入库速度高于设置的最低阈值并且可用存储空间满足剩余数据流的入库需求的实时分发入库模块1,由确定的两个或者多个时分发入库模块1将所述数据流存入数据集中存储模块2中。
或者
在所有实时分发入库模块1的当前入库状态都不满足所述数据流的入库需求时,所述实时分发入库模块1确定两个或者多个实时分发入库模块1入库速度高于设置的最低阈值、组合后可用存储空间满足数据流的入库需求并且最接近的数据流的入库需求,由所述两个或者多个实时分发入库模块1将所述数据流存入数据集中存储模块2中。
确定组合后满足数据流的入库需求的多个实时分发入库模块1时,可包括本模块。这里的“指示”也可能包括对本模块1的指示。
还可以利用其他合理的方式确定满足数据流的入库需求的多个实时分发入库模块1,必须满足的要求是组合后的可用存储空间大于或者等于数据流的入库需求,为了更好的实时分发处理数据,充分提高数据分发处理***的处理效率,在满足空间要求的基础上,考虑入库速度,优先选择入库速度高的实时分发入库模块1。
如图2所示,所述实时分发入库模块1包括实时分发子模块11和数据入库子模块12,
所述实时分发子模块11,在接收一个或者多个数据源发送的数据流后,查询入库状态信息表,获得所述实时分发入库模块1的当前入库状态,当所述实时分发入库模块1的当前入库状态满足所述数据流的入库需求时,实时分发子模块11发送数据入库消息给数据入库子模块12;所述实时分发子模块11还用于根据所述数据入库子模块12发送的入库成功消息更新入库状态信息表;所述实时分发子模块11还用于根据其它实时分发子模块11的指示查询入库状态信息表,获得入库速度和分发存储空间信息,并将所述分发存储空间信息返回给其它实时分发子模块11;所述分发存储空间小于或者等于可用存储空间;
所述数据入库子模块12,将所述数据流存入数据集中存储模块2中,并在存入成功后,发送入库成功消息给实时分发子模块11。
如图2所示,当所述实时分发入库模块1的当前入库状态不满足所述数据流的入库需求时,向其他的所有或者部分实时分发入库模块1的实时分发子模块11发送数据分发请求消息,接收到数据分发请求消息的一个或者多个实时分发子模块11查询入库状态信息表,并向发送数据分发请求消息的实时分发子模块11返回数据分发确认消息;所述数据分发确认消息中携带入库速度和分发存储空间信息;所述分发存储空间小于或者等于可用存储空间;
接收到数据分发确认消息的实时分发子模块1,确定入库速度高于设置的最低阈值并且满足数据流的入库需求的另一个实时分发入库模块1或者入库速度高于设置的最低阈值并且组合后满足数据流的入库需求的多个实时分发入库模块1,并向另一个实时分发入库模块1的实时分发子模块11或者多个实时分发入库模块1的实时分发子模块11发送数据分发消息,并按照所述数据分发确认消息中的分发存储空间将所接收到的数据流进行实时分发,由另一个实时分发入库模块1的数据入库子模块12或者多个实时分发入库模块1的数据入库子模块12将所述数据流存入数据集中存储模块2中,并在存入成功后,发送入库成功消息给对应的实时分发子模块11。
优选地,当前入库状态还包括正在服务的其他实时分发子模块任务数N,在接收到一次其他实时分发子模块11发送的数据分发请求消息时,N+1,在接收到一次数据入库子模块12发送的IP地址为其他实时分发入库模块11的地址的入库成功消息时,N-1。
所述另一个实时分发入库模块1的实时分发子模块11或者多个实时分发入库模块1的,还用于根据对应的数据入库子模块12发送的入库成功消息更新入库状态信息表。
实时分发子模块11在接收到数据源发送的数据流后,实时查询或者根据设置的查询周期,查询入库状态信息表获取本实时分发入库模块1的入库状态。
其中,查询周期可按照所有数据源的数据量规模和海量数据实时分发处理***的数据入库能力(可用存储空间、入库速度)进行设置。
实时分发子模块11还用于为所述一个或者多个数据源的数据流标记用于指示所述数据流来源的数据源标签;还用于向组合后满足数据流的入库需求的多个实时分发入库模块1的实时分发子模块11发送用于指示分发文件的文件名列表;
所述多个实时分发入库模块1的数据入库子模块12,还用于根据所述数据源标签和文件名列表,所述数据流存入数据集中存储模块2中。
实时分发子模块11对接收到的数据流标记指示来源的数据源标签,通过所述数据源标签,可以实现对不同数据源数据进行分类查询和分析,例如数据源标签信息可以为省市名称,通过数据源标签信息,可对不同省市的数据进行分类查询和分析。根据应用需求,可以对同一个数据源标注多个标签信息。
例如:数据源数据格式:
文件名 | 文件内容 |
实时分发子模块11接收后,标记了数据源标签的数据可以格式为:
数据源标签 | 文件名 | 文件内容 |
为了对接收到的数据流标记数据源标签,每个实时分发子模块11可以维护一份数据源标签列表,根据数据源的IP地址查询其对应的标签信息,在增减数据源或数据源的IP地址及标签信息更改时,同步修改所有实时分发子模块11中的标签列表信息。标签列表格式可以为:
数据源的IP地址 | 数据源的标签信息 |
如图3所示,本发明实施例还提供一种数据实时分发处理方法,包括:
实时分发入库模块1接收一个或者多个数据源发送的数据流,并查询本模块的当前入库状态,如果所述当前入库状态满足所述数据流的入库需求,则将所述数据流存入数据集中存储模块2中,如果所述当前入库状态不满足所述数据流的入库需求,则根据所述多个实时分发入库模块1的当前入库状态,确定满足数据流的入库需求的的一个或多个实时分发入库模块1,指示所确定的实时分发入库模块1将所述数据流存入数据集中存储模块2中;
数据集中存储模块2接收并存储各个实时分发入库模块1发送的数据流;
各个实时分发入库模块1的数据流入库成功后,更新当前入库状态。
其中,当前入库状态包括可用存储空间和入库速度,当可用存储空间高于数据流的需求空间并且入库速度高于设置的最低阈值时,满足所述数据流的入库需求。
确定组合后满足数据流的入库需求的多个实时分发入库模块1的策略可以为:
确定满足数据流的入库需求的另一个实时分发入库模块1;
或者,
确定一个入库速度高于设置的最低阈值并且可用存储空间最接近数据流的入库需求的实时分发入库模块1,再确定一个或者多个入库速度高于设置的最低阈值并且可用存储空间满足剩余数据流的入库需求的实时分发入库模块1;
或者
确定两个或者多个实时分发入库模块1入库速度高于设置的最低阈值、组合后可用存储空间满足数据流的入库需求并且最接近的数据流的入库需求。
确定组合后满足数据流的入库需求的多个实时分发入库模块1的步骤包括:
所述实时分发入库模块1向其他的所有或者部分实时分发入库模块1发送数据分发请求消息,接收到数据分发请求消息的一个或者多个实时分发模块1查询入库状态信息表,并向发送数据分发请求消息的实时分发子模块1返回数据分发确认消息;所述数据分发确认消息中携带入库速度和分发存储空间信息;所述分发存储空间小于或者等于可用存储空间;
接收到数据分发确认消息的实时分发子模块1,确定入库速度高于设置的最低阈值并且满足数据流的入库需求的另一个实时分发入库模块1或者入库速度高于设置的最低阈值并且组合后满足数据流的入库需求的多个实时分发入库模块1,并向所述另一个实时分发入库模块1或者多个实时分发入库模块1发送数据分发消息,并按照所述数据分发确认消息中的分发存储空间将所接收到的数据流进行实时分发。
在实时分发子模块1接收一个或者多个数据源发送的数据流后,为所述一个或者多个数据源的数据流标记用于指示所述数据流来源的数据源标签;
实时分发子模块1在确定组合后满足数据流的入库需求的多个实时分发入库模块1后,向组合后满足数据流的入库需求的多个实时分发入库模块1发送用于指示分发文件的文件名列表;
所述多个实时分发入库模块1根据所述数据源标签和文件名列表,所述数据流存入数据集中存储模块2中。
实施例
实施例1、实时分发入库模块1能够对所服务数据源的数据进行实时入库的流程:
以第一实时分发入库模块1为例:
1)、第一实时分发入库模块1实时接收一个或者多个数据源发送的数据流;
2)、第一实时分发入库模块1查询数据源标签列表,为每个数据源的数据流添加数据源标签;
3)、第一实时分发子模块11查询入库状态信息表,第一实时分发入库模块1的当前剩余可用存储空间和入库速度满足入库需求;
4)、第一实时分发子模块11发送数据入库消息给第一数据入库子模块12;
5)、第一数据入库子模块12根据数据源标签、文件名列表信息完成数据入库;
6)、数据入库后,第一数据入库子模块12发送入库成功消息给第一实时分发子模块11;
7)、第一实时分发子模块11更新入库状态信息表。
实施例2、实时分发入库模块1无法满足对所服务数据源数据进行实时入库,需进行数据分发处理的流程为:
以第一实时分发入库模块1无法满足要求,第二实时分发入库模块1可以满足要求为例:
1)、第一实时分发入库模块1实时接收一个或者多个数据源发送的数据流;
2)、第一实时分发入库模块1查询数据源标签列表,为每个数据源的数据流添加数据源标签;
3)、第一实时分发子模块11查询入库状态信息表,第一实时分发入库模块1的当前剩余可用存储空间或入库速度无法满足入库需求;
4)、第一实时分发子模块11查询其他入库模块的入库状态;
5)、第一实时分发入库模块1的第一实时分发子模块11向第二实时分发入库模块1的第二实时分发子模块11发送数据分发请求消息;
6)、第二实时分发入库模块1的第二实时分发子模块11查询入库状态信息表;
7)、第二实时分发入库模块1的第二实时分发子模块11返回数据分发确认消息,包括入库速度和可分发的存储空间;
8)、第一实时分发入库模块1的第一实时分发子模块11选择满足数据流入库需求的第二实时分发入库子模块1进行数据分发;第一实时分发入库模块1的第一实时分发子模块11向第二实时分发入库模块1的第二实时分发子模块11发送数据分发消息;
9)、第二实时分发入库模块1的第二实时分发子模块11接收到数据分发消息后,更新入库状态信息表,同时发送数据入库消息给第二实时分发入库模块1的第二数据入库子模块12;
10)、第二数据入库子模块12进行数据入库;
11)、第二数据入库子模块12返回入库成功消息;
12)、第二实时分发入库模块1的第二实时分发子模块11更新入库状态信息表。
实施例3、实时分发入库模块1无法满足对所服务数据源数据进行实时入库,需进行数据分发处理的流程为:
以第一实时分发入库模块1无法满足要求,第一和第二实时分发入库模块1组合后可以满足要求为例:
1)、第一实时分发入库模块1实时接收一个或者多个数据源发送的数据流;
2)、第一实时分发入库模块1查询数据源标签列表,为每个数据源的数据流添加数据源标签;
3)、第一实时分发子模块11查询入库状态信息表,第一实时分发入库模块1的当前剩余可用存储空间或入库速度无法满足入库需求;
4)、第一实时分发子模块11查询其他入库模块的入库状态;
5)、第一实时分发入库模块1的第一实时分发子模块11向第二实时分发入库模块1的第二实时分发子模块11发送数据分发请求消息;
6)、第二实时分发入库模块1的第二实时分发子模块11查询入库状态信息表;
7)、第二实时分发入库模块1的第二实时分发子模块11返回数据分发确认消息,包括入库速度和可分发的存储空间;
8)、第一实时分发入库模块1的第一实时分发子模块11确定第一实时分发入库模块1和第二实时分发入库模块1组合后满足数据流入库需求;第一实时分发入库模块1的第一实时分发子模块11根据第一实时分发入库模块1的可用存储空间和第二实时分发入库模块1的分发存储空间向第二实时分发入库模块1的第二实时分发子模块11发送数据分发消息;
9)、第二实时分发入库模块1的第二实时分发子模块11接收到数据分发消息后,更新入库状态信息表,同时发送数据入库消息给第二实时分发入库模块1的第二数据入库子模块12;第一实时分发入库模块1的第一实时分发子模块11更新入库状态信息表,同时发送数据入库消息给第一实时分发入库模块1的第一数据入库子模块12;
10)、第一和第二数据入库子模块12进行数据入库;
11)、第一和第二数据入库子模块12返回入库成功消息;
12)、第一实时分发入库模块1的第一实时分发子模块11第二实时分发入库模块1的第二实时分发子模块11更新入库状态信息表。
如果第一实时分发入库模块1无法满足数据流的入库需求,并且可用存储空间低于设定的最小阈值,选择除第一实时分发入库模块1外的其他实时分发入库模块1进行数据入库,例如第二和第三实时分发入库模块1组合后可以满足要求,则选择第二和第三实时分发入库模块1共同进行数据入库,具体流程与上述情况类似。
在向其他的部分实时分发入库模块1的实时分发子模块11发送数据分发请求消息时,确定某几个实时分发入库模块1的方式可以根据选择等级进行排序,例如
入库状态信息表还可以包括所有实时分发入库模块的入库状态信息,具体格式可以为:
正在服务的其他实时分发子模块任务数N,在接收到一次其他实时分发子模块11发送的数据分发消息时,N+1;在接收到一次本数据入库子模块12发送的实时分发入库模块IP地址为其他入库模块地址的入库成功消息时,N-1;
选择等级是在每次更新入库状态信息表时,对表中所有实时分发入库模块1的入库能力按照正在服务的其他实时分发子模块任务数N、入库速度、当前剩余可用存储空间进行综合排序获得。N越小且剩余可用存储空间越大的实时分发入库模块,其选择等级越高。
时间戳、实时分发入库模块IP地址、入库速度、当前剩余可用存储空间来源于数据入库模块发送的入库成功消息、及其他实时分发子模块发送的入库状态更新消息。
入库状态信息表的维护管理:
在接收到数据入库子模块12的入库成功消息、其他实时分发子模块12发送的入库状态更新消息、数据分发消息时,更新所维护的入库状态信息表的时间戳、当前剩余可用存储空间、正在服务的其他实时分发子模块任务数N、选择等级信息。
根据设置的更新周期在实时分发子模块11间发送入库状态更新消息,即实时分发子模块在到达更新周期后,实时向其他所有实时分发子模块发送,入库状态更新消息格式为:
数据实时分发处理
如本实时分发入库模块1的入库状态信息能够满足入库需求(当前剩余可用存储空间高于数据流的入库需求、入库速度高于设置的最低阈值),则向数据入库子模块发送数据入库消息。
数据入库消息格式为:
实时分发入库模块IP地址 | 数据源标签 | 文件名列表 |
如本实时分发入库模块1无法满足入库需求(当前剩余可用存储空间低于数据流的入库需求或者入库速度低于设置的最低阈值),则基于维护的入库状态信息表,按照可用存储空间首选选择等级高的一个或多个实时分发入库模块,向所选定的一个或多个实时分发入库模块1发送数据分发请求消息。
数据分发请求消息格式为:
同时,接收其他实时分发子模块11发送的数据分发请求消息,并查询入库状态信息表,返回数据分发确认消息。
数据分发确认消息格式为:
接收到数据分发确认消息的实时分发子模块11,向其所请求的实时分发子模块11发送数据分发消息,并按照数据分发确认消息中的分发存储空间将所接收到的数据进行实时分发,由其他数据入库子模块12完成数据入库。
数据分发消息格式为:
数据入库子模块12接收本实时分发入库模块1的实时分发子模块11发送的数据入库消息,并根据消息中的实时分发入库模块IP地址、数据源标签和文件名列表,对数据进行入库,入库后,发送入库成功消息给实时分发子模块11。
入库成功消息格式为:
实时分发入库模块IP地址 | 时间戳 | 入库速度 | 当前剩余可用存储空间 |
实施例4、
例如本发明实施例的实时分发入库模块1为7个,其中第一实时分发入库模块1的可用存储空间为1.2GB,第二实时分发入库模块1的可用存储空间为700MB,第三实时分发入库模块1的可用存储空间为400MB,第四实时分发入库模块1的可用存储空间为500MB,第五实时分发入库模块1的可用存储空间为600MB,第六实时分发入库模块1的可用存储空间为300MB,第七实时分发入库模块1的可用存储空间为800MB,上述7个实时分发入库模块1的入库速度均大于设定的最低阈值,设定的存储空间最小阈值为350MB,需要存储的数据流为1GB。
当需要存储的数据流发送至第一实时分发入库模块1后,因为第一实时分发入库模块1的当前入库状态满足数据流的入库要求,由第一实时分发入库模块1将所述数据流存入数据集中存储模块2中。
当需要存储的数据流发送至第二实时分发入库模块1后,因为第二实时分发入库模块1的当前入库状态不满足数据流的入库要求,查询获得第二、第三实时分发入库模块1组合后,满足数据流的入库需求并且最接近的数据流的入库需求,由第二和第三实时分发入库模块1将所述数据流存入数据集中存储模块2中。
当需要存储的数据流发送至第三、第四、第五实时分发入库模块1后,与第二实时分发入库模块1情况类似,为了尽可能不浪费可用存储空间,分别有第三和第二实时分发入库模块1、第四和第五实时分发入库模块1、第五和第四实时分发入库模块1将所述数据流存入数据集中存储模块2中。
当需要存储的数据流发送至第六实时分发入库模块1后,因为第六实时分发入库模块1的当前可用存储空间小于设定的存储空间最小阈值,由其他实时分发入库模块1将所述数据流存入数据集中存储模块2中,这是第一实时分发入库模块1、第二和第三实时分发入库模块1组合、第四和第五实时分发入库模块1组合都满足数据流的入库需求,选择第二和第三实时分发入库模块1组合将所述数据流存入数据集中存储模块2中,或者第四和第五实时分发入库模块1组合将所述数据流存入数据集中存储模块2中,或者由第一实时分发入库模块1组合将所述数据流存入数据集中存储模块2中。
此时可以根据一定的策略进行选择,例如尽量保持数据的完整性,可以选择第一实时分发入库模块1,尽量不浪费可用存储空间第二和第三实时分发入库模块1组合、第四和第五实时分发入库模块1组合可用存储空间相同,可以选择返回消息最快的一组,或者其中一个实时分发入库模块1最大程度满足要求的。
当需要存储的数据流发送至第七实时分发入库模块1后,这是最接近的为第六第六实时分发入库模块1,但是第六实时分发入库模块1的当前可用存储空间小于设定的存储空间最小阈值,因此忽略,选择与第三实时分发入库模块1组合将所述数据流存入数据集中存储模块2中,或者由第一实时分发入库模块1组合将所述数据流存入数据集中存储模块2中。
虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (8)
1.一种数据实时分发处理装置,其特征在于,包括数据集中存储模块和多个实时分发入库模块,
实时分发入库模块,用于接收一个或者多个数据源发送的数据流,并查询本模块的当前入库状态,如果所述当前入库状态满足所述数据流的入库需求,则将所述数据流存入数据集中存储模块中,如果所述当前入库状态不满足所述数据流的入库需求,则根据所述多个实时分发入库模块的当前入库状态,确定满足数据流的入库需求的一个或多个实时分发入库模块,指示所确定的实时分发入库模块将所述数据流存入数据集中存储模块中;在入库成功后,更新本模块的当前入库状态;还用于根据其它实时分发入库模块的指示将相应的数据流存入数据集中存储模块中;
所述数据集中存储模块,用于接收并存储各个实时分发入库模块发送的数据流;
当前入库状态包括可用存储空间和入库速度,当可用存储空间高于数据流的需求空间并且入库速度高于设置的最低阈值时,满足所述数据流的入库需求;
在所有实时分发入库模块的当前入库状态都不满足所述数据流的入库需求时,所述实时分发入库模块确定一个入库速度高于设置的最低阈值并且可用存储空间最接近数据流的入库需求的实时分发入库模块,再确定一个或者多个入库速度高于设置的最低阈值并且可用存储空间满足剩余数据流的入库需求的实时分发入库模块,由确定的两个或者多个时分发入库模块将所述数据流存入数据集中存储模块中;
或者,
在所有实时分发入库模块的当前入库状态都不满足所述数据流的入库需求时,所述实时分发入库模块确定两个或者多个实时分发入库模块入库速度高于设置的最低阈值、组合后可用存储空间满足数据流的入库需求并且最接近的数据流的入库需求,由所述两个或者多个实时分发入库模块将所述数据流存入数据集中存储模块中。
2.如权利要求1所述的处理装置,其特征在于:所述实时分发入库模块包括实时分发子模块和数据入库子模块,
所述实时分发子模块,在接收一个或者多个数据源发送的数据流后,查询入库状态信息表,获得所述实时分发入库模块的当前入库状态,当所述实时分发入库模块的当前入库状态满足所述数据流的入库需求时,实时分发子模块发送数据入库消息给数据入库子模块;所述实时分发子模块还用于根据所述数据入库子模块发送的入库成功消息更新入库状态信息表;所述实时分发子模块还用于根据其它实时分发子模块的指示查询入库状态信息表,获得入库速度和分发存储空间信息,并将所述分发存储空间信息返回给其它实时分发子模块;所述分发存储空间小于或者等于可用存储空间;
所述数据入库子模块,将所述数据流存入数据集中存储模块中,并在存入成功后,发送入库成功消息给实时分发子模块。
3.如权利要求2所述的处理装置,其特征在于:当所述实时分发入库模块的当前入库状态不满足所述数据流的入库需求时,向其他的所有或者部分实时分发入库模块的实时分发子模块发送数据分发请求消息,接收到数据分发请求消息的一个或者多个实时分发子模块查询入库状态信息表,并向发送数据分发请求消息的实时分发子模块返回数据分发确认消息;所述数据分发确认消息中携带入库速度和分发存储空间信息;
接收到数据分发确认消息的实时分发子模块,确定入库速度高于设置的最低阈值并且组合后满足数据流的入库需求的多个实时分发入库模块,并向多个实时分发入库模块的实时分发子模块发送数据分发消息,并按照所述数据分发确认消息中的分发存储空间将所接收到的数据流进行实时分发,由多个实时分发入库模块的数据入库子模块将所述数据流存入数据集中存储模块中,并在存入成功后,发送入库成功消息给对应的实时分发子模块;
所述多个实时分发入库模块,还用于根据对应的数据入库子模块发送的入库成功消息更新入库状态信息表。
4.如权利要求3所述的处理装置,其特征在于:当前入库状态还包括正在服务的其他实时分发子模块任务数N,在接收到一次其他实时分发子模块发送的数据分发请求消息时,N+1,在接收到一次数据入库子模块发送的IP地址为其他实时分发入库模块的地址的入库成功消息时,N-1。
5.如权利要求3所述的处理装置,其特征在于:实时分发子模块还用于为所述一个或者多个数据源的数据流标记用于指示所述数据流来源的数据源标签;还用于向组合后满足数据流的入库需求的多个实时分发入库模块的实时分发子模块发送用于指示分发文件的文件名列表;
所述多个实时分发入库模块的数据入库子模块,还用于根据所述数据源标签和文件名列表,所述数据流存入数据集中存储模块中。
6.一种数据实时分发处理方法,其特征在于,用于权利要求1所述的数据实时分发处理装置,包括:
实时分发入库模块接收一个或者多个数据源发送的数据流,并查询本模块的当前入库状态,如果所述当前入库状态满足所述数据流的入库需求,则将所述数据流存入数据集中存储模块中,如果所述当前入库状态不满足所述数据流的入库需求,则根据所述多个实时分发入库模块的当前入库状态,确定满足数据流的入库需求的一个或多个实时分发入库模块,指示所确定的实时分发入库模块将所述数据流存入数据集中存储模块中;
数据集中存储模块接收并存储各个实时分发入库模块发送的数据流;
各个实时分发入库模块的数据流入库成功后,更新当前入库状态;
当前入库状态包括可用存储空间和入库速度,当可用存储空间高于数据流的需求空间并且入库速度高于设置的最低阈值时,满足所述数据流的入库需求;
确定满足数据流的入库需求的的一个或多个实时分发入库模块的策略包括:
确定一个入库速度高于设置的最低阈值并且可用存储空间最接近数据流的入库需求的实时分发入库模块,再确定一个或者多个入库速度高于设置的最低阈值并且可用存储空间满足剩余数据流的入库需求的实时分发入库模块;
或者,
确定两个或者多个实时分发入库模块入库速度高于设置的最低阈值、组合后可用存储空间满足数据流的入库需求并且最接近的数据流的入库需求。
7.如权利要求6所述的处理方法,其特征在于:
确定组合后满足数据流的入库需求的多个实时分发入库模块的步骤包括:
所述实时分发入库模块向其他的所有或者部分实时分发入库模块发送数据分发请求消息,接收到数据分发请求消息的一个或者多个实时分发模块查询入库状态信息表,并向发送数据分发请求消息的实时分发子模块返回数据分发确认消息;所述数据分发确认消息中携带入库速度和分发存储空间信息;所述分发存储空间小于或者等于可用存储空间;
接收到数据分发确认消息的实时分发子模块,确定入库速度高于设置的最低阈值并且组合后满足数据流的入库需求的多个实时分发入库模块,并向所述多个实时分发入库模块发送数据分发消息,并按照所述数据分发确认消息中的分发存储空间将所接收到的数据流进行实时分发。
8.如权利要求7所述的处理方法,其特征在于:在实时分发子模块接收一个或者多个数据源发送的数据流后,为所述一个或者多个数据源的数据流标记用于指示所述数据流来源的数据源标签;
实时分发子模块在确定组合后满足数据流的入库需求的多个实时分发入库模块后,向组合后满足数据流的入库需求的多个实时分发入库模块发送用于指示分发文件的文件名列表;
所述多个实时分发入库模块根据所述数据源标签和文件名列表,所述数据流存入数据集中存储模块中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310581497.6A CN103595800B (zh) | 2013-11-18 | 2013-11-18 | 一种数据实时分发处理装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310581497.6A CN103595800B (zh) | 2013-11-18 | 2013-11-18 | 一种数据实时分发处理装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103595800A CN103595800A (zh) | 2014-02-19 |
CN103595800B true CN103595800B (zh) | 2017-04-05 |
Family
ID=50085780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310581497.6A Active CN103595800B (zh) | 2013-11-18 | 2013-11-18 | 一种数据实时分发处理装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103595800B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105306173A (zh) * | 2015-11-17 | 2016-02-03 | 天泽信息产业股份有限公司 | 一种自适应的车联网终端接入方法 |
EP3403198A4 (en) | 2016-01-11 | 2019-09-04 | Oracle America, Inc. | INTERROGATION SYSTEM AS A SERVICE PROVIDING QUERY RESULT DATA TO REMOTE CLIENTS |
CN106487902A (zh) * | 2016-10-19 | 2017-03-08 | 华迪计算机集团有限公司 | 一种基于消息中间件的数据收集方法和*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073683A (zh) * | 2010-12-22 | 2011-05-25 | 四川大学 | 一种分布式的实时新闻信息采集*** |
CN103152393A (zh) * | 2013-02-05 | 2013-06-12 | 北京邮电大学 | 一种云计算的计费方法和计费*** |
CN103312752A (zh) * | 2012-03-13 | 2013-09-18 | 中国联合网络通信集团有限公司 | 点对点网络信息分发方法、下载节点、索引服务器及*** |
US8943497B2 (en) * | 2008-05-29 | 2015-01-27 | Red Hat, Inc. | Managing subscriptions for cloud-based virtual machines |
-
2013
- 2013-11-18 CN CN201310581497.6A patent/CN103595800B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8943497B2 (en) * | 2008-05-29 | 2015-01-27 | Red Hat, Inc. | Managing subscriptions for cloud-based virtual machines |
CN102073683A (zh) * | 2010-12-22 | 2011-05-25 | 四川大学 | 一种分布式的实时新闻信息采集*** |
CN103312752A (zh) * | 2012-03-13 | 2013-09-18 | 中国联合网络通信集团有限公司 | 点对点网络信息分发方法、下载节点、索引服务器及*** |
CN103152393A (zh) * | 2013-02-05 | 2013-06-12 | 北京邮电大学 | 一种云计算的计费方法和计费*** |
Also Published As
Publication number | Publication date |
---|---|
CN103595800A (zh) | 2014-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103699446B (zh) | 基于量子粒子群优化算法的多目标工作流动态调度方法 | |
CN104462121B (zh) | 数据处理方法、装置及*** | |
CN103763343A (zh) | 一种业务访问处理方法及装置 | |
CN104969213A (zh) | 用于低延迟数据存取的数据流分割 | |
CN102387222B (zh) | 地址分配方法、装置及*** | |
CN103491024B (zh) | 一种面向流式数据的作业调度方法及装置 | |
CN101637006A (zh) | 用于使用uddi来调解web服务的方法和设备 | |
CN103248645A (zh) | Bt离线数据下载***及方法 | |
CN103281367A (zh) | 一种负载均衡方法及装置 | |
CN103338252A (zh) | 一种分布式数据库并发存储虚拟请求机制 | |
CN105208622B (zh) | 一种高效动态自动维护的路由表结构的路由选择方法及路由表管理方法 | |
CN102737065A (zh) | 数据的获取方法和装置 | |
CN101741705A (zh) | 一种并行处理路由更新报文的方法及装置 | |
CN103595800B (zh) | 一种数据实时分发处理装置及方法 | |
CN106326339A (zh) | 任务分配方法及装置 | |
CN108055701A (zh) | 一种资源调度方法及基站 | |
CN103248636B (zh) | 离线下载的***及方法 | |
CN102333280B (zh) | 一种业务密钥更新的方法、***及业务处理服务器 | |
CN116361006A (zh) | 面向存算分离的算网资源协同调度方法及*** | |
CN103974219B (zh) | 一种组计费标识的分配及下发方法、组计费标识处理实体 | |
CN105159925A (zh) | 一种数据库集群数据分配方法及*** | |
CN109889349A (zh) | 一种app广播消息推送方法、装置及可读存储介质 | |
CN105376155B (zh) | 一种基于分布式集群架构的智能路由***及方法 | |
CN109474902A (zh) | 消息计费装置、方法、终端及*** | |
CN106453092B (zh) | 一种路由更新方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |