并行批量处理方法

文档序号:6554073阅读:586来源:国知局
专利名称:并行批量处理方法
技术领域
本发明涉及批量数据的集中处理的技术领域,具体涉及一种并行批量处理方法,以提高金融机构的海量数据的处理效率。
背景技术
随着国内金融业竞争的不断激烈,各大金融机构纷纷走上数据集中之路。数据集中就是要将分布在全国各地的数万个机构的数据合并到一起,并建立起一个全行统一的电子化体系,这是中国金融电子化、集约化体系建设大工程。
数据集中将带来一场信息技术和管理的变革。原来金融机构的数据信息是分布在各个机构的本地系统上,银行的批量处理系统包括完全独立的运行在各地的系统,这些系统分别处理本地数据库表中的数据。但是由于各机构的数据量相对较小,传统的批量处理按照图6所示的串行流程来进行。
众所周知,银行业务处理中的批量(BATCH)是由若干个作业(JOB)组成的,作业是批量的基本运行单元,每个作业完成一定的业务处理功能。作业之间按照严格的业务逻辑顺序运行。每个作业(JOB)中可以有多个作业步(JOBSTEP),每个作业步(JOBSTEP)承载着一个应用程序(PROGRAM)的运行。
在数据集中的形势下,数据中心的主机通过系统耦合技术,建立了强大的主机设备集群,这个设备集群由多台主机组成,每一台主机都配置了5个的CPU,64GB的内存,2GB/S的硬盘通道传输速率。但由于批量作业只能按照逻辑顺序串行处理数据,不能很好的利用充足的系统资源。
此外,在数据集中后,当数据中心的数据迅速膨胀为原来的几十倍,传统的串行批量处理模式已经不能满足日益增长的数据要求。例如,从夜间0:00开始的批量处理,往往超过12小时,不能够保障银行的帐务处理和各类营业状况分析报表的生成。数据处理效率问题成为实施数据集中的障碍,迫切要求研究开发出适应海量数据处理的批量处理方案。

发明内容
鉴于上述问题,完成了本发明。本发明的目的是提出一种并行批量处理方法,以提高金融机构的海量数据的处理效率,例如数据吞吐能力。
在本发明的一个方面,提出了一种以批量单位的形式对作业进行并行处理的并行批量处理方法,所述批量单位包括至少一个要执行的作业,所述并行批量处理方法包括步骤将数据库表从物理上分成多个分区,并将与预定区域相对应的数据存储在分区中,所述预定区域具有区域代号;建立区域代号和各个批量单位的编号之间的映射表;建立数据访问模式,以将批量单位的作业访问的数据范围限定在区域代号与批量单位编号映射的范围内;针对预定的批量单位,将该预定的批量单位中的作业拷贝成多份,形成多个批量单位;以及并行提交所述多个批量单位。
根据本发明的一个实施例,在该方法中,将与一个区域相对应的数据存储在一个或多个分区上。
根据本发明的一个实施例,在该方法中,所述多个分区的大小不同。
根据本发明的一个实施例,在该方法中,如果两个区域的数据存储在同一个分区上,则这两个区域的代号必须在同一个批量单位的映射范围内。
根据本发明的一个实施例,在该方法中,所述建立数据访问模式的步骤包括从批量单位编号信息文件中读取批量单位编号;参照批量单位编号与地区代号之间的映射表,以批量单位编号为索引,读取对应的区域代号的区间值;以及以变量的形式将数据访问范围限定在最大区域代号和最小区域代号之间。
根据本发明的一个实施例,在该方法中,所述形成批量单位的步骤包括以预定的批量单位中的作业为模板,按照预计的批量单位的个数,拷贝成多套作业,每套作业分别成为一个批量单位;为每个批量单位建立一个新的名字,并在名字上加入批量单位编号;为每个批量单位创建一个可读的批量单位编号文件,存放在对应的批量单位中。
根据本发明的一个实施例,在该方法中,以手工的方式提交所述多个批量单位。
根据本发明的一个实施例,在该方法中,以自动化的作业提交工具来提交所述多个批量单位。
根据本发明的一个实施例,在该方法中,还包括步骤在批量单位编号与区域代号映射表中增加新批量单位的编号及其对应的区域代号区间;复制一批量单位的作业,建立新批量单位的作业;修改新批量单位的作业对应的批量编号文件。
根据本发明的一个实施例,在该方法中,通过对批量单位编号所对应的数据区域进行调整,来均衡各个批量单位处理的数据量。
利用本发明的方法,大大缩短了批量系统运行时间,从投产前的10-12小时,缩短为目前3-4小时。
此外,本发明的方法建立了批量单位之间的作业并发处理和不相关作业的并发处理,在实现过程上做到了应用程序的通用,不需要为每个批量单位修改一套程序来限定不同的访问数据区域。因此,在提高了数据处理效率的同时还提高了通用性和灵活性。


图1示出了串行批量处理模式和并发的批量处理模式之间的比较示意图;图2示出了根据本发明的实施例,进行并行批量处理的流程图;图3是用来解释批量单位编号、区域代号、数据分区之间的关系的示意图;
图4是有限定的数据访问过程的流程图;图5示出了新增批量单位操作过程的流程图;图6示出了传统的批量作业处理的流程图。
具体实施例方式
下面对照附图详细说明本发明的具体实施方式

图1显示了本发明的技术方案的基本原理,其中将传统的以数据库表中的全部数据为处理单位的一个批量,分成若干个批量单位进行并行处理。每个批量单位都与原来的一个批量的业务功能相同,作业流程相同,区别在于,原来的一个批量完整的处理数据库表中全部数据,而本发明的每个批量单位仅仅处理一部分数据,由多个功能相同的批量单位来并发完成原来一个批量的全部处理,以大大提高处理效率。
图2示出了根据本发明的实施例进行并行批量处理的流程图。下面对照附图2详细描述本发明的并行批量处理方法。
S110,对批量处理系统中的数据库表按照分区(PARTITION)划分对于一张数据库中的表,具有一个逻辑的表名,并具有完整的索引文件。当由多个并发的过程进行处理时,其中最大技术障碍是并发访问的冲突,即数据在并发访问过程中由于资源竞争而引发的访问出错,表现出超时(Timeout)、死锁(Deadlock)或者异常中断等特性。为例避免并发访问冲突,需要将数据分成若干独立的分区进行物理存储。这样,在并发访问数据时,不会因为访问到相同的数据页(由于相同表的不同PARTITION使用不同的物理存储文件),避免了因访问冲突而导致的程序死锁中断或超时中断。
分区时可以有很多种原则,例如,可以根据业务特性不同进行分区,可以按照业务发生的时间段进行分区,也可以按照帐务的专署、客户的专署等管理特征或者人口统计学特征来确定。但是,在金融软件系统中,选择区域代号(或称机构代号)作为分区标准,具有两个明显的优势1、在银行系统中,是以区域代号作为一个金融帐务核算的基本单位,以区域代号作为分区标准,可以保证每个批量单位处理的一个相对独立的帐务核算单位,使各个批量单位之间的业务联系最弱,约束最小,达到各批量单位业务逻辑独立处理,互不干扰的目的。
2、在银行系统中,区域代号出现在系统中所有的数据库表中,便于形成单一的分区标准,使系统更为简洁统一。
在目前流行的关系型数据库中,例如DB2、ORACLE都支持数据分区存储的策略,只需要通过表空间参数定义,为每个数据分区定义一个分区标准区间(最小值和最大值),当有新的数据进入时,数据库会自动根据设定的参数值,将新数据存储到指定的区域。
通过以上操作对数据库表的进行分区,建立起数据分区(PARTITION)与区域代号之间的关系 与一个区域代号相对应的数据可以分在一个或多个PARTITION上。数据库本身对一个PARTITION最大空间有一些技术上的限制。在DB2中,每个PARTITION空间一般不能超过4GB,如果一个区域代号的数据超过4GB,则需要定义在多个PARTITION上。
两个区域代号的数据尽量不要存储在同一个PARTITION上,如果两个区域的数据定义在同一个PARTITION上,会对后续的区域代号与批量单位之间的映射关系产生约束,如下所述。
S120,建立区域代号与批量单位之间的映射关系。
当对数据库表以‘区域代号’进行了分区(PARTITION)之后,需要建立批量单位编号与数据库表之间的分区(PARTITION)映射关系。也就是需要通过‘区域代号’为媒介,建立一张参数表,即区域代号与批量单位编号对照表,定义批量单位编号与区域代号之间的映射关系,从而间接实现批量单位编号与PARTITION之间对应的关系。下面给出一个示例

上表中的批量单位001,映射的数据范围是区域代号为0001和0003之间的数据,批量单位002,映射的数据范围是区域代号在0004和0010之间的数据,依次类推。
图3简单说明了批量单位编号、区域代号、数据分区之间的关系。保证这三者之间的关系对于减少并发时的访问冲突十分重要。
此外,在确定每个批量单位编号对应的‘区域代号区间’时,要保证这些‘区域代号区间’正好在一个或多个PARTITION上存储,如果出现了两个区域代号的数据被分配在同一个PARTITION上的情况,那么这两个区域代号必须在同一个批量单位编号的映射范围,不能被分隔在两个批量单位中。
在遵守以上原则的基础上,选定一个批量单位能够处理的数据量的基准。由于上述的过程中,批量单位至少是处理一个完整区域代号的数据,那么数据量最大的区域代号就成为批量单位的最小基准,(因为传统的批量已经具备了处理一个区域数据的处理能力)。比如,北京或上海这些业务量最大的区域成为一个默认的批量单位数据量的基准。当然也可以选定一些其他的数据量基准,但必须在模拟的生产环境中测试选定的这个基准数据量的运行时间(是否在可容忍的范围之内)。
此外,当各个并行的批量单位之间处理的数据量保持基本均衡时,才能够保证各批量单位运行时间差距最小,并且保证整个批量的运行时间最短。所以,在定义每个批量单位的区域代号区间时,尽量避免各批量单位的数据量差异太大,造成个别批量单位的处理时间过长。在选定了数据基准后,其他批量单位参照这个基准进行区域代号划分,对于一些小业务量的数据区域,可与相邻的区域合并在一个批量单位中。
S130,数据访问模式的建立每个批量单位都是都一组作业(JOB)组成,由作业来完成应用程序的运行流程控制。一个作业就好像是DOS中的一个批处理文件或UNIX中的一个SHELL脚本,脚本中的命令序列如同作业中调用的应用程序。
为了让每个批量单位的作业访问的数据范围限定在区域代号与批量单位编号对照表映射的范围内,需要建立新的数据访问模式。
首先,为每个批量单位指定一个批量单位编号文件(带有‘批量单位编号’信息),通过作业语言在每个作业中指定其对应的批量单位编号文件即可。
其次,改造作业中的调用应用程序,建立新的数据访问模式,每个应用程序仅访问指定范围的数据。以前程序访问数据时,仅仅需要指定数据库表的名字,进行全表访问,在并行处理模式下,程序只能访问限定在指定范围内的数据。
例如,在传统的数据访问模式下,如下访问数据SELECT*FROM TABLE_NAME WHERE(condition1)AND(condition 2)......
但是,在本发明的数据访问模式,如下访问数据SELECT*FROM TABLE_NAME WHERE(‘区域代号’BETWEEN‘区域代号的最小值’AND‘区域代号的最大值’)AND(condition1)AND(condition 2)......
图4示出了在新的处理模式下应用程序访问数据的流程图。如图4所示,在步骤S210,从批量单位编号信息文件中读取批量单位编号。然后,在步骤S220,参照批量单位编号与地区编号映射表,以批量单位编号为索引,读取对应的区域代号的区间值。
随后,在步骤S230,以变量的形式将数据访问范围限定在最大区域代号和最小区域代号之间。最后,在步骤S240,程序就按照上述的数据范围进行数据处理。
经过以上参数化的设置和数据访问模式的改造,就不需要为每个批量单位修改一套程序来限定不同的访问数据区域,仅仅通过指定每个批量单位的编号和定义批量单位编号与区域代号映射表,程序就能够自动获取所需要的相关信息,按照参数定义的区域代号范围进行数据处理。
S140,建立并发的批量单位通过以上的操作,实现并发处理的基本元素都已经具备了。下面是建立每个批量单位的作业,具体过程如下。
首先,以目前具有的一条完整的批量作业为模板,按照预计的批量单位的个数,拷贝成多套作业,每套作业分别成为一个批量单位。
然后,为每个批量单位建立一个新的名字,一般习惯上在名字加入批量单位编号信息,以示区分。
最后,为每个批量单位创建一个可读的批量单位编号文件,存放在对应的批量单位中。这可以通过作业语言定义来实现。
通过以上步骤,建立各并行单位的作业。
S150,并行批量作业的提交传统批量系统中,如果作业很少,可以由经过专业训练的操作员在计算机操作终端上通过命令的方式启动作业运行命令行提交作业1,作业1正常结束后;提交作业2,依次类推。如果作业很多,可以使用自动化批量作业提交工具,比如IBM公司的TWS作业管理工具。
并行批量系统与传统的批量系统在作业提交方面基本相同,主要差别是各个批量单位中的相同作业可以同时提交。
下面以图1为例说明并行批量作业的提交过程。在批量操作启动时,批量单位1、批量单位2与批量单位3中的作业1可以同时提交,即同时提交各批量单位中的第一作业。如果批量单位1中的作业1运行完成,则再提交批量单位1中的作业2,如果批量单位3中的作业1完成,则再提交批量单位3中的作业2,如果批量单位2中的作业1完成,则再提交批量单位2中的作业2,以此类推。
当然,并行批量系统中的作业一般非常多,而且各批量单位中相同的作业运行时间不会完全相同,所有作业提交过程非常复杂,通过手工进行作业提交是很难完成的,一般均需要使用自动化作业提交工具来完成这些大量的作业提交。
通过以上五个步骤,建立了这种并行的高效的批量处理系统,大大提高了系统的数据处理能力。由于该实现方法采用了参数化的控制,使它成为灵活的、扩展性良好的海量数据解决方案,并对后续的系统维护带来了极大的便利。
例如,随着数据量的增加,当批量运行时间再次增长到不能容忍时,只需要增加新的批量单位就可以分散数据压力。实现的方法也非常简单,仅仅定义一些参数表,拼装拷贝一套作业即可。附图5描述了增加一个批量单位的操作过程。
如图5所示,在步骤S310,在批量单位编号与区域代号映射表中增加新的批量编号及其对应的区域代号区间。然后,在步骤S320,复制一套批量单位的作业,按照既定规则命名,建立新批量单位的作业。最后,在步骤S330,修改新批量单位作业对应的批量编号文件,将文件中的批量编号修改为新增的批量编号。
此外,随着各区域的数据量的发展,可能造成批量单位之间的数据分布不均衡,这时只需要对批量单位编号对应的数据区域进行适当的调整。例如,只需要重新定义批量单位编号与区域代号映射表,建立新的映射关系。此过程中注意保持附图3中批量编号、区域代号区间、数据分区PARTITION之间的关系即可。
以上所述,仅为本发明中的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变换或替换,都应涵盖在本发明的包含范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
权利要求
1.一种以批量单位的形式对作业进行并行处理的并行批量处理方法,所述批量单位包括至少一个要执行的作业,所述并行批量处理方法包括步骤将数据库表从物理上分成多个分区,并将与预定区域相对应的数据存储在分区中,所述预定区域具有区域代号;建立区域代号和各个批量单位的编号之间的映射表;建立数据访问模式,以将批量单位的作业访问的数据范围限定在区域代号与批量单位编号映射的范围内;针对预定的批量单位,将该预定的批量单位中的作业拷贝成多份,形成多个批量单位;以及并行提交所述多个批量单位。
2.如权利要求1所述的并行批量处理方法,其特征在于,将与一个区域相对应的数据存储在一个或多个分区上。
3.如权利要求2所述的并行批量处理方法,其特征在于,所述多个分区的大小不同。
4.如权利要求1所述的并行批量处理方法,其特征在于,如果两个区域的数据存储在同一个分区上,则这两个区域的代号必须在同一个批量单位的映射范围内。
5.如权利要求1所述的并行批量处理方法,其特征在于,所述建立数据访问模式的步骤包括从批量单位编号信息文件中读取批量单位编号;参照批量单位编号与地区代号之间的映射表,以批量单位编号为索引,读取对应的区域代号的区间值;以及以变量的形式将数据访问范围限定在最大区域代号和最小区域代号之间。
6.如权利要求1所述的并行批量处理方法,其特征在于,所述形成批量单位的步骤包括以预定的批量单位中的作业为模板,按照预计的批量单位的个数,拷贝成多套作业,每套作业分别成为一个批量单位;为每个批量单位建立一个新的名字,并在名字上加入批量单位编号;为每个批量单位创建一个可读的批量单位编号文件,存放在对应的批量单位中。
7.如权利要求1所述的并行批量处理方法,其特征在于,以手工的方式提交所述多个批量单位。
8.如权利要求1所述的并行批量处理方法,其特征在于,以自动化的作业提交工具来提交所述多个批量单位。
9.如权利要求1所述的并行批量处理方法,其特征在于,还包括步骤在批量单位编号与区域代号映射表中增加新批量单位的编号及其对应的区域代号区间;复制一批量单位的作业,建立新批量单位的作业;修改新批量单位的作业对应的批量编号文件。
10.如权利要求1所述的并行批量处理方法,其特征在于,通过对批量单位编号所对应的数据区域进行调整,来均衡各个批量单位处理的数据量。
全文摘要
公开了一种以批量单位的形式对作业进行并行处理的并行批量处理方法,所述批量单位都包括至少一个要执行的作业,所述并行批量处理方法包括步骤将数据库表从物理上分成多个分区,并将与预定区域相对应的数据存储在分区中,所述预定区域具有区域代号;建立区域代号和各个批量单位的编号之间的映射表;建立数据访问模式,以将批量单位的作业访问的数据范围限定在区域代号与批量单位编号映射的范围内;针对预定的批量单位,将该预定的批量单位中的作业拷贝成多份,形成多个批量单位;以及并行提交所述多个批量单位。利用上述方法,提高了金融机构的海量数据的处理效率。
文档编号G06Q40/00GK1794285SQ20061000040
公开日2006年6月28日 申请日期2006年1月5日 优先权日2006年1月5日
发明者林晓轩, 苏文力, 吕仲涛, 卢练文, 于芳, 李兴双, 王煜辉, 李奇伟, 谭汉清, 张海军 申请人:中国工商银行股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1