本申请涉及互联网技术领域,尤其涉及一种海量数据的处理方法及其装置。
背景技术:
随着互联网技术的发展,在支持各类业务需求的情况下,通常需要对海量数据的进行重复利用和网络资源的合理优化。
由于网站的流量上升,每天产生的数据到了pb级别,需要处理这些数据的存储和计算资源是相当可观的。而且如果没有对数据做统一管理,各个业务都需要对这pb级别的数据进行复制、过滤、转储,造成了计算资源、存储资源的浪费。
假设:1pb数据需要100台计算机器和100台存储机器,则
a业务(比如风控)如需要分析这1pb数据,则需要200台以内的机器;
b业务(比如营销1)如需要分析这1pb数据,则需要200台以内的机器;
c业务(比如营销2)如需要分析这1pb数据,则需要200台以内的机器;
d业务(比如离线)如需要分析这1pb数据,则需要200台以内的机器。
实际这类场景很多,每个业务需要数据的时候都从源头取数据,当业务越来越多的时候,比如接了100个业务,就需要2万台机器。
因此,如何优化海量数据的处理过程成为亟需解决的技术问题。
技术实现要素:
有鉴于此,本申请提供一种海量数据的处理方法及其装置,其能够优化海量数据的处理过程,节约了计算资源和存储资源。
本申请提供一种海量数据的处理方法,应用于服务器端,所述方法包括:
接收各业务处理的数据需求,以及所述数据需求的调度要求信息;
根据针对所述数据需求预设的合并策略及其调度要求信息,对所述各业务的数据需求进行合并打包,形成数据需求指令集;
推送所述数据需求指令集至各系统,以获得与所述指令集对应的数据;
存储各系统发送的数据,并调度所述数据进行对应的业务处理。
在本申请一具体实施例中,所述数据的调度要求信息包括:优先级信息、延时处理信息以及灾备处理信息。
在本申请一具体实施例中,所述合并规则为:
如所述数据需求需要立即处理,或者所述数据需求为高保证,则所述优先级信息和所述灾备处理信息归并后的处理级别为高,所述延时处理信息取最小值。
在本申请一具体实施例中,所述根据针对所述数据需求预设的合并策略及其调度要求信息,对所述各业务的数据需求进行合并打包,形成数据需求指令集之前还包括:
约定各系统数据的数据格式。
在本申请一具体实施例中,所述推送所述数据需求指令集至各系统,以获得与所述指令集对应的数据还包括:
根据集群处理能力,按照所述数据的等级,接收各系统传输的所述数据。
在本申请一具体实施例中,所述推送所述数据需求指令集至各系统,获得与所述指令集对应的数据还包括:
根据服务器端的集群处理能力,分配各通道数据传输的资源开销比例, 以保证各业务处理的运行。
在本申请一具体实施例中,所述存储各系统发送的数据,并调度所述数据进行对应的业务处理包括:
存储各系统发送的数据;
查询所存储数据的索引值,获取对应的数据并进行业务处理;
若全部业务处理完成,则将索引值标记为可删除,根据所述标记对索引空间和数据空间进行安全释放。
本申请提供一种海量数据的处理装置,应用于服务器端,所述方法包括:
接收模块,用于接收各业务处理的数据需求,以及所述数据需求的调度要求信息;
注册模块,用于根据针对所述数据需求预设的合并策略及其调度要求信息,对所述各业务的数据需求进行合并打包,形成数据需求指令集;
发送模块,用于推送所述数据需求指令集至各系统,以获得与所述指令集对应的数据;
调度模块,用于存储各系统发送的数据,并调度所述数据进行对应的业务处理。
在本申请一具体实施例中,所述数据的调度要求信息包括:优先级信息、延时处理信息以及灾备处理信息。
在本申请一具体实施例中,所述合并规则为:
如所述数据需求需要立即处理,或者所述数据需求为高保证,则所述优先级信息和所述灾备处理信息归并后的处理级别为高,所述延时处理信息取最小值。
在本申请一具体实施例中,注册模块还用于约定各系统数据的数据格式。
在本申请一具体实施例中,所述发送模块还用于根据集群处理能力,按照所述数据的等级,接收各系统传输的所述数据。
在本申请一具体实施例中,所述发送模块还用于根据服务器端的集群处理能力,分配各通道数据传输的资源开销比例,保证各业务处理的运行。
在本申请一具体实施例中,所述调度模块包括:
存储单元,用于存储各系统发送的数据;
查询单元,用于查询所存储数据的索引值,获取对应的数据并进行业务处理;
回收单元,用于若全部业务处理完成,则将索引值标记为可删除,根据所述标记对索引空间和数据空间进行安全释放。
由以上技术方案可见,本申请接收各业务处理的数据需求及其调度要求信息,并根据针对所述数据需求预设的合并策略及其调度要求信息,对各数据需求进行合并打包,形成数据需求指令集。从而,根据所述数据需求指令集获得与所述指令集对应的数据,并调度所述数据进行对应的业务处理。本申请能够优化海量数据的处理过程,节约了计算资源和存储资源。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本申请所应用分布式服务器的硬件结构图;
图2是本申请一种海量数据的处理方法的流程图;
图3是本申请一种海量数据的处理方法中步骤s4的流程图;
图4是本申请一种海量数据的处理装置的结构图;
图5是本申请一种海量数据的处理装置中调度模块的结构图。
具体实施方式
本申请接收各业务处理的数据需求及其调度要求信息,并根据针对所述数据需求预设的合并策略及其调度要求信息,对各数据需求进行合并打包,形成数据需求指令集。从而,根据所述数据需求指令集获得与所述指令集对 应的数据,并调度所述数据进行对应的业务处理。本申请能够优化海量数据的处理过程,节约了计算资源和存储资源。
当然,实施本申请的任一技术方案必不一定需要同时达到以上所述的所有优点。
为了使本领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请提供一种海量数据的处理方法,应用于分布式服务器,参看图1,分布式服务器1的硬件结构包括控制器11、存储器12以及其他硬件13。
参看图2,本申请所述方法2包括:
s1、接收各业务处理的数据需求,以及所述数据需求的调度要求信息。
所述数据的调度要求信息包括:优先级信息、延时处理信息以及灾备处理信息。
具体地,优先级信息:
对应位为1,则表示立即处理,对应位为0,则表示延时处理。
延时处理信息:
0档,1档,2档,3档,4档,5档。这些档位对应不同的延时时间。需要说明的是,如果是0档,就表示无延时。
灾备处理:
对应位为1,表示高保证,对应位为0,表示允许丢弃。
在本申请一具体实现中,接收业务1、业务2、业务3、业务4的数据需求,以及所述数据需求的调度要求信息。
业务1,需要立即处理且无延时且高保证,需要系统1的data11数据和系统2的data21数据。
业务2,需要立即处理且无延时且允许丢弃,需要系统2的data22数据和系统3的data32数据。
业务3,需要延时处理且2s延时且高保证,需要系统1的data11数据和系统2的data22数据。
业务4,需要延时处理且3s延时且允许丢弃,需要系统1的data12数据、系统2的data23数据和系统3的data33数据。
上面描述的整理表格表一所述。
表一:
具体地,为了保证各业务对各系统的数据的理解是相同的,所以需要有元数据中心来约定各系统数据的数据格式。
s2、根据针对所述数据需求预设的合并策略及其调度要求信息,对所述各业务的数据需求进行合并打包,形成数据需求指令集。
所述合并规则为:
如所述数据需求需要立即处理,或者所述数据需求为高保证,则所述优先级信息和所述灾备处理信息归并后的处理级别为高,所述延时处理信息取最小值。
具体的,根据表一所述优先级信息和所述灾备处理信息,所述约定合并规则为所述优先级信息和所述灾备处理信息取逻辑或计算,所述延时处理信息取最小值。
具体地,将步骤s1中的数据需求进行合并打包,如表二所示。
表二:
s3、推送所述数据需求指令集至各系统,以获得与所述指令集对应的数据。
具体地,所述系统嵌入客户端软件,在系统启动时或者接收到所述服务器发送的数据需求指令集,在系统内部进行计算与数据收集,将与所述指令集对应的数据发送至所述服务器。
具体地,对于系统1表二中的data11数据(1,0档,1),收集到一条就立即往服务器传输一条。对于系统1表二中的data12数据(0,3档,0),收集到一条会先暂存,等到阀值(时间、容量、数量等)到达3档,再往服务端上传数据。
对于系统2表二中的data21数据、data22数据(1,0档,1),收集到一条就立即往服务器传输一条。对于系统2表二中的data23数据(0,3档,0),收集到一条会先暂存,等到阀值(时间、容量、数量等)到达3档,再往服务端上传数据。
对于系统3表二中的data32数据(1,0档,0),收集到一条就立即往服务器传输一条。对于系统2表二中的data33数据(0,3档,0),收集到一条会先暂存,等到阀值(时间、容量、数量等)到达3档,再往服务端上传数据。
对于系统客户端立即往服务器传输的数据,通过前几次数据传输和服务端调度,可以算出一个最优传输路径,然后生成一个令牌给系统的客户端,形成客户端和服务端的高速通道,以获得最小的延时。
系统客户端启动的时候会根据自身的cpu、磁盘、操作系统的位数,算出本地缓存的限值。当即将超过本地缓存的限值时,客户端申请服务器端的快速通道资源令牌,通过服务器端的快速通道将超过本地缓存的数据存储到额外的存储器中。服务器端的快速通道用于紧急数据的处理。
为了保证业务处理得到精准的数据,可在所述客户端和服务器端接收数据时进行数据预处理。数据预处理包括:运算、排序、归并操作。比如,某业务是实时统计各类支付渠道使用银行卡进行支付时,各银行支付的总额。如果每笔交易都发到服务端通过流式计算对每秒百万级的数据进行过滤、统计,需要一个较大的集群支持。如果在客户端做预处理,比如,对本机的银行卡交易做过滤、1秒内汇总,则可以节约大量的服务器计算资源。
具体地,服务器端根据其集群处理能力,按照所述数据的等级,接收各系统传输的所述数据。即,优先级信息和延时处理信息高级别,灾备处理信息高保证的数据低延时处理;优先级信息和延时处理信息低级别,灾备处理信息低保证的数据高延时处理。
根据服务器端的集群处理能力,分配各通道数据传输的资源开销比例,保证各业务处理的运行。
服务器端会根据集群能力预先分配经各通道接收客户端所发送数据的资源开销比例,保证各业务处理的正常运行。
具体地,各通道包括:立即处理、延时处理、快速通道,预先分配器资源开销的比例,比如(50%,40%,10%)。在上线过程中,保证业务处理单元在可控范围内运行。所述资源分配在集群运行期会被自动优化。
服务器端的灾备策略先对可以延时处理的通道做降级,然后对即时处理可以丢弃数据做降级,最后对快速通道入口做降级。
服务端会对数据通道资源监控,通过一定的算法调整通道资源。
所述算法主要功能是均衡通道资源,其原理与负载均衡算法类似,可以结合业务选择改进。比如:响应比优先算法、固定权重算法、加权最少连接算法。
s4、存储各系统发送的数据,并调度所述数据进行对应的业务处理。
在本申请另一具体实现中,参见图3,所述步骤s4包括:
s41、存储各系统发送的数据。
具体地,服务器端存储接收到的全部数据,为了灾备,存储3份全部数据。
s42、查询所存储数据的索引值,获取对应的数据并进行业务处理。
本申请数据索引流向一个环形数据流中,从所述环形流中接收到索引值,获取对应的数据并进行业务处理。
s43、若全部业务处理完成,则将索引值标记为可删除,根据所述标记对索引空间和数据空间进行安全释放。
本申请能够优化海量数据的处理过程,节约了计算资源和存储资源。
对应上述方法,本申请还提供一种海量数据的处理装置,应用于分布式服务器,参看图1,分布式服务器1的硬件结构包括控制器11、存储器12 以及其他硬件13。
参看图4,本申请所述装置4包括:
接收模块41,用于接收各业务处理的数据需求,以及所述数据需求的调度要求信息。
注册模块42,用于根据针对所述数据需求预设的合并策略及其调度要求信息,对所述各业务的数据需求进行合并打包,形成数据需求指令集。
发送模块43,用于推送所述数据需求指令集至各系统,以获得与所述指令集对应的数据。
调度模块44,用于存储各系统发送的数据,并调度所述数据进行对应的业务处理。
所述数据的调度要求信息包括:优先级信息、延时处理信息以及灾备处理信息。
具体地,优先级信息:
对应位为1,则表示立即处理,对应位为0,则表示延时处理。
延时处理信息:
0档,1档,2档,3档,4档,5档。这些档位对应不同的延时时间。需要说明的是,如果是0档,就表示无延时。
灾备处理:
对应位为1,表示高保证,对应位为0,表示允许丢弃。
在本申请一具体实现中,接收业务1、业务2、业务3、业务4的数据需求,以及所述数据需求的调度要求信息。
业务1,需要立即处理且无延时且高保证,需要系统1的data11数据和系统2的data21数据。
业务2,需要立即处理且无延时且允许丢弃,需要系统2的data22数据和系统3的data32数据。
业务3,需要延时处理且2s延时且高保证,需要系统1的data11数据和系统2的data22数据。
业务4,需要延时处理且3s延时且允许丢弃,需要系统1的data12数据、系统2的data23数据和系统3的data33数据。
上面描述的整理表格表一所述。
表一:
具体地,为了保证各业务对各系统的数据的理解是相同的,所以需要有元数据中心来约定各系统数据的数据格式。
所述合并规则为:
如所述数据需求需要立即处理,或者所述数据需求为高保证,则所述优先级信息和所述灾备处理信息归并后的处理级别为高,所述延时处理信息取最小值。
具体的,根据表一所述优先级信息和所述灾备处理信息,所述约定合并规则为所述优先级信息和所述灾备处理信息取逻辑或计算,所述延时处理信息取最小值。
具体地,将接收模块41中的数据需求进行合并打包,如表二所示。
表二:
具体地,所述系统嵌入客户端软件,在系统启动时或者接收到所述服务器发送的数据需求指令集,在系统内部进行计算与数据收集,将与所述指令集对应的数据发送至所述服务器。
具体地,对于系统1表二中的data11数据(1,0档,1),收集到一条就立即往服务器传输一条。对于系统1表二中的data12数据(0,3档,0),收集到一条会先暂存,等到阀值(时间、容量、数量等)到达3档,再往服务端上传数据。
对于系统2表二中的data21数据、data22数据(1,0档,1),收集到一条就立即往服务器传输一条。对于系统2表二中的data23数据(0,3档,0),收集到一条会先暂存,等到阀值(时间、容量、数量等)到达3档,再往服务端上传数据。
对于系统3表二中的data32数据(1,0档,0),收集到一条就立即往服务器 传输一条。对于系统2表二中的data33数据(0,3档,0),收集到一条会先暂存,等到阀值(时间、容量、数量等)到达3档,再往服务端上传数据。
对于系统客户端立即往服务器传输的数据,通过前几次数据传输和服务端调度,可以算出一个最优传输路径,然后生成一个令牌给系统的客户端,形成客户端和服务端的高速通道,以获得最小的延时。
系统客户端启动的时候会根据自身的cpu、磁盘、操作系统的位数,算出本地缓存的限值。当即将超过本地缓存的限值时,客户端申请服务器端的快速通道资源令牌,通过服务器端的快速通道将超过本地缓存的数据存储到额外的存储器中。服务器端的快速通道用于紧急数据的处理。
为了保证业务处理得到精准的数据,可在所述客户端和服务器端接收数据时进行数据预处理。数据预处理包括:运算、排序、归并操作。比如,某业务是实时统计各类支付渠道使用银行卡进行支付时,各银行支付的总额。如果每笔交易都发到服务端通过流式计算对每秒百万级的数据进行过滤、统计,需要一个较大的集群支持。如果在客户端做预处理,比如,对本机的银行卡交易做过滤、1秒内汇总,则可以节约大量的服务器计算资源。
具体地,服务器端根据其集群处理能力,按照所述数据的等级,接收各系统传输的所述数据。即,优先级信息和延时处理信息高级别,灾备处理信息高保证的数据低延时处理;优先级信息和延时处理信息低级别,灾备处理信息低保证的数据高延时处理。
根据服务器端的集群处理能力,分配各通道数据传输的资源开销比例,保证各业务处理的运行。
服务器端会根据集群能力预先分配经各通道接收客户端所发送数据的资源开销比例,保证各业务处理的正常运行。
具体地,各通道包括:立即处理、延时处理、快速通道,预先分配器资源开销的比例,比如(50%,40%,10%)。在上线过程中,保证业务处理单元在可控范围内运行。所述资源分配在集群运行期会被自动优化。
服务器端的灾备策略先对可以延时处理的通道做降级,然后对即时处理 可以丢弃数据做降级,最后对快速通道入口做降级。
服务端会对数据通道资源监控,通过一定的算法调整通道资源。
所述算法主要功能是均衡通道资源,其原理与负载均衡算法类似,可以结合业务选择改进。比如:响应比优先算法、固定权重算法、加权最少连接算法。
在本申请另一具体实现中,参见图5,所述调度模块44包括:
存储单元441,用于存储各系统发送的数据。
具体地,服务器端存储接收到的全部数据,为了灾备,存储3份全部数据。
查询单元442,用于查询所存储数据的索引值,获取对应的数据并进行业务处理。
本申请数据索引流向一个环形数据流中,从所述环形流中接收到索引值,获取对应的数据并进行业务处理。
回收单元443,用于若全部业务处理完成,则将索引值标记为可删除,根据所述标记对索引空间和数据空间进行安全释放。
本申请能够优化海量数据的处理过程,节约了计算资源和存储资源。
本申请的实施例所提供的装置可通过计算机程序实现。本领域技术人员应该能够理解,上述的单元以及模块划分方式仅是众多划分方式中的一种,如果划分为其他单元或模块或不划分块,只要信息对象的具有上述功能,都应该在本申请的保护范围之内。
本领域的技术人员应明白,本申请的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。