專利名稱:并行批量處理方法
技術領域:
本發明涉及批量數據的集中處理的技術領域,具體涉及一種并行批量處理方法,以提高金融機構的海量數據的處理效率。
背景技術:
隨著國內金融業競爭的不斷激烈,各大金融機構紛紛走上數據集中之路。數據集中就是要將分布在全國各地的數萬個機構的數據合并到一起,并建立起一個全行統一的電子化體系,這是中國金融電子化、集約化體系建設大工程。
數據集中將帶來一場信息技術和管理的變革。原來金融機構的數據信息是分布在各個機構的本地系統上,銀行的批量處理系統包括完全獨立的運行在各地的系統,這些系統分別處理本地數據庫表中的數據。但是由于各機構的數據量相對較小,傳統的批量處理按照圖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日
發明者林曉軒, 蘇文力, 呂仲濤, 盧練文, 于芳, 李興雙, 王煜輝, 李奇偉, 譚漢清, 張海軍 申請人:中國工商銀行股份有限公司