一种数据并行处理方法及装置的制造方法

文档序号:10612660阅读:234来源:国知局
一种数据并行处理方法及装置的制造方法
【专利摘要】本发明公开了一种数据并行处理方法及装置。一种数据并行处理方法,包括:确定目标数据集及用于处理目标数据集包含的数据的数据处理进程的数量,目标数据集中包含多条待处理的数据;根据确定的数据处理进程的数量,对目标数据集进行划分;将划分后的每份数据分配给每个数据处理进程;启动各数据处理进程对分配得到的对应数据进行处理。应用本发明实施例所提供的技术方案,可以缩短数据获取时长,提高数据处理效率。
【专利说明】
一种数据并行处理方法及装置
技术领域
[0001]本发明涉及数据处理技术领域,特别是涉及一种数据并行处理方法及装置。
【背景技术】
[0002]并行处理,是指启动多个数据处理进程,并行对数据进行处理,以提高数据处理速率,在很多数据处理过程中较为常用,尤其是在进行数据库数据跑批过程中。
[0003]比如,在进行养老金年结时,可以启动多个数据处理进程对上一年度个人账号数据并行进行业务结算。在这个过程中,每个数据处理进程按条获取数据,并对获取的数据进行处理,需要确保每个数据处理进程获取到的数据都是尚未处理的和不重复的。
[0004]目前,常见的处理方法是对数据加锁,以防止重复获取。比如,oracle数据库采用的select,.for update方式,当某个数据处理进程要对某条数据进行处理,会先查询该数据是否处于锁定状态,如果否,会针对该数据加锁,这样,其他数据处理进程就不会再处理该条数据,如果是,则再进行其他数据的状态查询,直至查询到未处于锁定状态的数据。
[0005]这种处理方法导致数据处理进程获取数据的时间长,数据处理效率低。

【发明内容】

[0006]为解决上述技术问题,本发明提供一种数据并行处理方法及装置。
[0007]一种数据并行处理方法,包括:
[0008]确定目标数据集及用于处理所述目标数据集包含的数据的数据处理进程的数量,所述目标数据集中包含多条待处理的数据;
[0009]根据确定的数据处理进程的数量,对所述目标数据集进行划分;
[0010]将划分后的每份数据分配给每个数据处理进程;
[0011 ]启动各数据处理进程对分配得到的对应数据进行处理。
[0012]在本发明的一种【具体实施方式】中,所述目标数据集为进行固化处理后的数据的集入口 O
[0013]在本发明的一种【具体实施方式】中,所述根据确定的数据处理进程的数量,对所述目标数据集进行划分,包括:
[0014]根据确定的数据处理进程的数量,将所述目标数据集划分为N等份,所述N为确定的数据处理进程的数量。
[0015]在本发明的一种【具体实施方式】中,所述根据确定的数据处理进程的数量,对所述目标数据集进行划分,包括:
[0016]根据确定的数据处理进程的数量及预先获得的每个数据处理进程被分配的内存大小,对所述目标数据集进行划分。
[0017]在本发明的一种【具体实施方式】中,所述方法还包括:
[0018]获得各数据处理进程针对相应数据的处理结果;
[0019]根据接收到的处理结果,确定处理失败数据;
[0020]将确定的所有处理失败数据确定为目标数据集,重复执行所述根据确定的数据处理进程的数量,对所述目标数据集进行划分的步骤。
[0021 ] 一种数据并行处理装置,包括:
[0022]确定模块,用于确定目标数据集及用于处理所述目标数据集包含的数据的数据处理进程的数量,所述目标数据集中包含多条待处理的数据;
[0023]划分模块,用于根据确定的数据处理进程的数量,对所述目标数据集进行划分;
[0024]分配模块,用于将划分后的每份数据分配给每个数据处理进程;
[0025]处理模块,用于启动各数据处理进程对分配得到的对应数据进行处理。
[0026]在本发明的一种【具体实施方式】中,所述目标数据集为进行固化处理后的数据的集入口 ο
[0027]在本发明的一种【具体实施方式】中,所述划分模块,具体用于:
[0028]根据确定的数据处理进程的数量,将所述目标数据集划分为N等份,所述N为确定的数据处理进程的数量。
[0029]在本发明的一种【具体实施方式】中,所述划分模块,具体用于:
[0030]根据确定的数据处理进程的数量及预先获得的每个数据处理进程被分配的内存大小,对所述目标数据集进行划分。
[0031]在本发明的一种【具体实施方式】中,所述装置还包括再处理模块,用于:
[0032]获得各数据处理进程针对相应数据的处理结果;
[0033]根据接收到的处理结果,确定处理失败数据;
[0034]将确定的所有处理失败数据确定为目标数据集,触发所述划分模块。
[0035]应用本发明实施例所提供的技术方案,确定目标数据集和处理数据进程的数量之后,可以根据处理数据进程的数量,将目标数据集进行划分,将划分后的每份数据分配给各数据处理进程,然后再启动各数据处理进程处理分配得到的相应数据,这样可以缩短数据获取时长,提高数据处理效率。
【附图说明】
[0036]为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0037]图1为本发明实施例中数据并行处理的一种实施流程图;
[0038]图2为本发明实施例中数据并行处理的一种结构示意图。
【具体实施方式】
[0039]本发明的核心是提供一种数据并行处理方法。本发明所提供的技术方案主要应用于数据库数据跑批过程中,当然,也可以应用于其他对已知固定数据进行数据处理的过程中,本发明实施例对此不作限制。在本发明实施例中,存在多个数据处理进程,每个数据处理进程都可以针对数据进行处理。在数据处理进程对数据进行处理之前,可以先对目标数据集进行划分,为每个数据处理进程分配相应的数据。然后,数据处理进程再对分配得到的相应数据进行处理,可以缩短数据获取时长,提高数据处理效率。
[0040]为了使本技术领域的人员更好地理解本发明方案,下面结合附图和【具体实施方式】对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0041]参见图1所示,为本发明实施例所提供的一种数据并行处理方法的实施流程图,该方法可以包括以下步骤:
[0042]SI 10:确定目标数据集及用于处理目标数据集包含的数据的数据处理进程的数量。
[0043]目标数据集中包含多条待处理的数据。
[0044]确定目标数据集,即确定应用本发明实施例所提供的技术方案要对哪些数据进行处理,这些待处理的数据构成了目标数据集。具体的,目标数据集可以是进行固化处理后的数据的集合,待处理的数据均为固化处理后的数据,这样,作为数据源的目标数据集包含的数据是固定的。
[0045]在本发明实施例中,存在多个用于处理目标数据集包含的数据的数据处理进程,每个数据处理进程均可以对目标数据集中的数据进行处理。
[0046]在实际应用中,可以由技术人员预先定义目标数据集包含的数据范围。根据预先定义的目标数据集包含的数据范围,确定多条待处理的数据,从而确定目标数据集。
[0047]确定目标数据集后,可以进一步根据目标数据集包含的数据条数,确定用于处理目标数据集包含的数据的数据处理进程的数量,或者,直接确定预先设定的数据处理进程的数量。
[0048]S120:根据确定的数据处理进程的数量,对目标数据集进行划分。
[0049]在步骤SI10确定目标数据集及用于处理该目标数据集包含的数据的数据处理进程的数量之后,可以根据确定的数据处理进程的数量,对目标数据集进行划分。即根据确定的数据处理进程的数量,对目标数据集中包含的待处理的数据进行划分,划分份数与确定的数据处理进程的数量相匹配,以使每个数据处理进程可以获得一份数据。
[0050]在本发明的一种【具体实施方式】中,可以根据确定的数据处理进程的数量,将目标数据集划分为N等份,N为确定的数据处理进程的数量。
[0051]比如,目标数据集包含的待处理的数据条数为100,确定的可以处理这些数据的数据处理进程的数量为5,则可以将目标数据集划分为5等份,每份数据中包含20条待处理的数据。
[0052]在本发明的另一种【具体实施方式】中,还可以根据确定的数据处理进程的数量及预先获得的每个数据处理进程被分配的内存大小,对目标数据集进行划分。
[0053]在实际应用中,多个数据处理进程可以运行在同一台物理计算机上,还可以运行在不同物理计算机上。每个数据处理进程被分配的内存大小可能不同。对于被分配的内存较大的数据处理进程而言,单位时间内其处理数据能力较强,可以处理较多条数的数据,对于被分配的内存较小的数据处理进程而言,单位时间内其处理数据能力较弱,可以处理较少条数的数据。
[0054]所以,可以预先获得每个数据处理进程被分配的内存大小,根据确定的数据处理进程的数量及预先获得的每个数据处理进程被分配的内存大小,对目标数据集进行划分,将目标数据集划分为N份,N为数据处理进程的数量,每份数据中包含的数据条数不同,可以根据数据处理进程的被分配的内存大小确定。
[0055]具体的,可以根据数据处理进程的被分配的内存大小,确定每个数据处理进程的被分配的内存占所有数据处理进程的被分配的内存总和的比例,根据该比例,确定与该数据处理进程对应的数据量占总的数据量的比例。
[0056]如例I,确定的数据处理进程的数量为3,目标数据集中包含的待处理的数据的条数为20,第一数据处理进程被分配的内存大小为IMBy te,第二数据处理进程被分配的内存大小为2MByte,第三数据处理进程被分配的内存大小为IMByte,第一数据处理进程对应的内存占比为1/( 1+2+1 ) = 1/4,第二数据处理进程对应的内存占比为2/( 1+2+1 ) = 1/2,第三数据处理进程对应的内存占比为1/(1+2+1) = 1/4,按照这样的比例,可以将目标数据集划分为5/10/5,即与第一数据处理进程对应的第一份数据为5条,与第二数据处理进程对应的第二份数据为10条,与第三数据处理进程对应的第三份数据为5条。
[0057]当然,也可以根据其他比例关系对目标数据集进行划分,只要遵循被分配内存大的数据处理进程对应的数据量较多为原则即可。本发明实施例对此不作限制。
[0058]在实际应用中,如果确定对目标数据集的划分后的份数或者每份包含的条数不是整数,则可以向上取整。
[0059]S130:将划分后的每份数据分配给每个数据处理进程。
[0060]在步骤S120,对目标数据集进行划分之后,可以将划分后的每份数据按顺序分配给每个数据处理进程。或者,在接收到数据处理进程的数据获取指令后,将相应的数据分配给该数据处理进程。
[0061 ]比如,如果是对目标数据集进行均等划分,则将划分后的每份数据分配给每个数据处理进程后,可以使每个数据处理进程得到的数据条数是相等的。
[0062]如果是不均等划分,即按照数据处理进程的数量及数据处理进程被分配的内存大小进行的划分,则可以按照顺序,将划分后的每份数据分配给相应的数据处理进程,使被分配的内存较大的数据处理进程被分配较多条数的数据,使被分配的内存较小的数据处理进程被分配较少条数的数据。
[0063]如例I中,第一份数据包含5条数据,将该份数据分配给第一数据处理进程,第二份数据包含10条数据,将该份数据分配给第二数据处理进程,第三份数据包含5条数据,将该份数据分配给第三数据处理进程。
[0064]这样,每个数据处理进程均得到了与其处理能力相当的待处理的数据,这样各数据处理进程的数据处理时间相差不大。
[0065]S140:启动各数据处理进程对分配得到的对应数据进行处理。
[0066]在步骤S130将划分后的每份数据分配给每个数据处理进程之后,可以启动各数据处理进程对分配得到的对应数据进行处理。数据处理进程对相应数据进行处理为现有技术,本发明实施例对此不再赘述。
[0067]应用本发明实施例所提供的方法,确定目标数据集和处理数据进程的数量之后,可以根据处理数据进程的数量,将目标数据集进行划分,将划分后的每份数据分配给各数据处理进程,然后再启动各数据处理进程处理分配得到的相应数据,这样可以缩短数据获取时长,提高数据处理效率。
[0068]另外,这样的数据处理流程简单灵活,对于原有程序的改造代价较小。
[0069]在本发明的一个实施例中,在步骤S140之后,该方法还可以包括以下步骤:
[0070]步骤一:接收各数据处理进程针对相应数据的处理结果;
[0071 ]步骤二:根据接收到的处理结果,确定处理失败数据;
[0072]步骤三:将确定的所有处理失败数据确定为目标数据集,重复执行步骤S120的操作。
[0073]为方便描述,将上述三个步骤结合起来进行说明。
[0074]数据处理进程对分配得到的相应数据处理完成后,可以获得各数据处理进程针对相应数据的处理结果。具体的,数据处理进程可以在相应数据中添加处理结果标识,如处理成功标识或者处理失败标识,根据数据中的处理结果标识,可以确定各数据的处理结果。
[0075]根据接收到的处理结果,可以确定处理失败数据,并将所有数据处理进程对应的所有处理失败数据归集在一起,确定为目标数据集,重复执行步骤S120的操作。使数据处理进程可以对处理失败数据进行再次处理。如果针对某数据,进行多次处理后,仍处理失败,则可以输出告警信息,以便技术人员可以查看,纠正数据错误。
[0076]相应于上面的方法实施例,本发明实施例还提供了一种数据并行处理装置。下面对本发明实施例提供的一种数据并行处理装置进行介绍,下文描述的一种数据并行处理装置与上文描述的一种数据并行处理方法可相互对应参照。
[0077]参见图2所示,为本发明实施例提供的一种数据并行处理装置的结构示意图,该装置可以包括:
[0078]确定模块210,用于确定目标数据集及用于处理所述目标数据集包含的数据的数据处理进程的数量,所述目标数据集中包含多条待处理的数据;
[0079]划分模块220,用于根据确定的数据处理进程的数量,对所述目标数据集进行划分;
[0080]分配模块230,用于将划分后的每份数据分配给每个数据处理进程;
[0081]处理模块240,用于启动各数据处理进程对分配得到的对应数据进行处理。
[0082]应用本发明实施例所提供的装置,确定目标数据集和处理数据进程的数量之后,可以根据处理数据进程的数量,将目标数据集进行划分,将划分后的每份数据分配给各数据处理进程,然后再启动各数据处理进程处理分配得到的相应数据,这样可以缩短数据获取时长,提高数据处理效率。
[0083]在本发明的一种【具体实施方式】中,所述目标数据集为进行固化处理后的数据的集入口 ο
[0084]在本发明的一种【具体实施方式】中,所述划分模块220,可以具体用于:
[0085]根据确定的数据处理进程的数量,将所述目标数据集划分为N等份,所述N为确定的数据处理进程的数量。
[0086]在本发明的一种【具体实施方式】中,所述划分模块220,可以具体用于:
[0087]根据确定的数据处理进程的数量及预先获得的每个数据处理进程被分配的内存大小,对所述目标数据集进行划分。
[0088]在本发明的一种【具体实施方式】中,所述装置还可以包括再处理模块,用于:
[0089]获得各数据处理进程针对相应数据的处理结果;
[0090]根据接收到的处理结果,确定处理失败数据;
[0091]将确定的所有处理失败数据确定为目标数据集,触发所述划分模块。
[0092]本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0093]专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0094]结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(R0M)、电可编程R0M、电可擦除可编程R0M、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
[0095]以上对本发明所提供的一种数据并行处理方法及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
【主权项】
1.一种数据并行处理方法,其特征在于,包括: 确定目标数据集及用于处理所述目标数据集包含的数据的数据处理进程的数量,所述目标数据集中包含多条待处理的数据; 根据确定的数据处理进程的数量,对所述目标数据集进行划分; 将划分后的每份数据分配给每个数据处理进程; 启动各数据处理进程对分配得到的对应数据进行处理。2.根据权利要求1所述的方法,其特征在于,所述目标数据集为进行固化处理后的数据的集合。3.根据权利要求2所述的方法,其特征在于,所述根据确定的数据处理进程的数量,对所述目标数据集进行划分,包括: 根据确定的数据处理进程的数量,将所述目标数据集划分为N等份,所述N为确定的数据处理进程的数量。4.根据权利要求2所述的方法,其特征在于,所述根据确定的数据处理进程的数量,对所述目标数据集进行划分,包括: 根据确定的数据处理进程的数量及预先获得的每个数据处理进程被分配的内存大小,对所述目标数据集进行划分。5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括: 获得各数据处理进程针对相应数据的处理结果; 根据接收到的处理结果,确定处理失败数据; 将确定的所有处理失败数据确定为目标数据集,重复执行所述根据确定的数据处理进程的数量,对所述目标数据集进行划分的步骤。6.一种数据并行处理装置,其特征在于,包括: 确定模块,用于确定目标数据集及用于处理所述目标数据集包含的数据的数据处理进程的数量,所述目标数据集中包含多条待处理的数据; 划分模块,用于根据确定的数据处理进程的数量,对所述目标数据集进行划分; 分配模块,用于将划分后的每份数据分配给每个数据处理进程; 处理模块,用于启动各数据处理进程对分配得到的对应数据进行处理。7.根据权利要求6所述的装置,其特征在于,所述目标数据集为进行固化处理后的数据的集合。8.根据权利要求7所述的装置,其特征在于,所述划分模块,具体用于: 根据确定的数据处理进程的数量,将所述目标数据集划分为N等份,所述N为确定的数据处理进程的数量。9.根据权利要求7所述的装置,其特征在于,所述划分模块,具体用于: 根据确定的数据处理进程的数量及预先获得的每个数据处理进程被分配的内存大小,对所述目标数据集进行划分。10.根据权利要求6至9任一项所述的装置,其特征在于,所述装置还包括再处理模块,用于: 获得各数据处理进程针对相应数据的处理结果; 根据接收到的处理结果,确定处理失败数据;将确定的所有处理失败数据确定为目标数据集,触发所述划分模块。
【文档编号】G06F9/46GK105975331SQ201610265208
【公开日】2016年9月28日
【申请日】2016年4月26日
【发明人】王萌
【申请人】浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1