核心銀行系統(tǒng) 之十七 批量任務(wù)

批量任務(wù)

賬務(wù)處理子系統(tǒng)作為核心銀行系統(tǒng)的系統(tǒng)內(nèi)核尼摹,這使得賬務(wù)處理子系統(tǒng)的設(shè)計和實現(xiàn)成為商業(yè)銀行核心業(yè)務(wù)系統(tǒng)構(gòu)建過程中的一個難點见芹。作為核心業(yè)務(wù)系統(tǒng)的內(nèi)核,賬務(wù)處理子系統(tǒng)一般通過批量方式完成蠢涝,故也稱為批量處理子系統(tǒng)玄呛。在構(gòu)成核心銀行系統(tǒng)的四個基本子系統(tǒng)中,批量處理子系統(tǒng)處于核心銀行系統(tǒng)的中間位置惠赫,起著承接業(yè)務(wù)處理子系統(tǒng)和會計報表子系統(tǒng)的樞紐作用把鉴,批量處理子系統(tǒng)在核心銀行系統(tǒng)所處的位置如下圖所示:

image.png

批量處理子系統(tǒng)是會計賬務(wù)核算信息的集中體現(xiàn),在設(shè)計中必須充分結(jié)合會計核算理論儿咱,充分考慮會計核算的發(fā)展趨勢和業(yè)務(wù)發(fā)展的要求庭砍,把系統(tǒng)中具有共性和相對穩(wěn)定的內(nèi)容提煉出來,形成通用和能以不變應(yīng)萬變的核心賬務(wù)處理系統(tǒng)混埠,穩(wěn)定性和適應(yīng)性是賬務(wù)處理子系統(tǒng)最重要和最基本的要求怠缸。 但是在數(shù)據(jù)邏緝集中及應(yīng)用重構(gòu)后由于系統(tǒng)架構(gòu)的調(diào)整必然會影響原有批量的處理邏緝。例如钳宪,某商業(yè)銀行批量流程總體架構(gòu)沒有大的變化揭北,主要是在布局上按業(yè)務(wù)分區(qū)拆開,部分應(yīng)用之間的信息交互需要改造為跨分區(qū)的方式吏颖。對于兩個分區(qū)批量處理的流程調(diào)度通過 IBM 公司的 TWS 作業(yè)管理軟件統(tǒng)一實現(xiàn)搔体。為了保證個人分區(qū)和對公分區(qū)的系統(tǒng)時間的一致性,通過技術(shù)手段控制兩分區(qū)同步日切半醉,如果出現(xiàn)單分區(qū)宕機時疚俱,正常分區(qū)要等待故障分區(qū)恢復(fù)后才能同步日切,并進行后續(xù)的批量處理缩多。

批量處理分類:

1呆奕、按所屬數(shù)據(jù)庫的不同區(qū)分,批量處理可分為:
  ·核心業(yè)務(wù)主機批量處理
  ·數(shù)據(jù)處理主機批量處理
2衬吆、按業(yè)務(wù)歸屬的不同區(qū)分梁钾,批量處理可分為:
  ·會計核算
  ·對公業(yè)務(wù)
  ·個人業(yè)務(wù)
  ·信用卡業(yè)務(wù)
  ·客戶信息業(yè)務(wù)
  ·數(shù)據(jù)處理業(yè)務(wù)等
3、批量處理所完成功能的不同區(qū)分逊抡,批量處理可分為:
  ·統(tǒng)計分析功能
包括核心業(yè)務(wù)批量的總分核對與試算平衡的處理姆泻。日終、月終冒嫡、年終的交易數(shù)據(jù)和賬戶數(shù)據(jù)的統(tǒng)計分析麦射。
此外,統(tǒng)計分析功能也是數(shù)據(jù)處理主機批量的主要功能灯谣。
  ·交易補記賬功能
同樣也是批量處理的核心功能潜秋。除了日終的補記賬、清算胎许、外匯買賣和黃金買賣的平倉處理外峻呛,還包括根據(jù)計提的統(tǒng)計分析結(jié)果做的內(nèi)部戶劃轉(zhuǎn)罗售、年終匯兌損益結(jié)轉(zhuǎn)、年終決算等綜合核算的處理钩述。
批量的交易補記賬功能在功能設(shè)計上是有著很大優(yōu)勢的寨躁,其最大的特點便是解決了內(nèi)部戶科目的熱點問題,大大減輕了聯(lián)機交易的負(fù)擔(dān)牙勘,縮短了聯(lián)機交易的響應(yīng)時間职恳。
  ·批量業(yè)務(wù)處理
包括批量代收代付業(yè)務(wù)、個人貸款到期還款方面、信用卡自動還款放钦、定期自動轉(zhuǎn)存、基金定投和結(jié)息處理等恭金。
  ·對外系統(tǒng)的數(shù)據(jù)供應(yīng)
外圍的運營型應(yīng)用和分析型應(yīng)用操禀,均需要從主機取得大量的交易數(shù)據(jù)和賬戶數(shù)據(jù),進行后續(xù)的統(tǒng)計分析處理横腿。對外圍系統(tǒng)和應(yīng)用的供數(shù)也是主機批量處理的主要功能颓屑,在整個批量處理中,對外系統(tǒng)的數(shù)據(jù)供應(yīng)占據(jù)了較大的比重耿焊。
 ·數(shù)據(jù)移行處理
移行主要包括 3 部分的內(nèi)容:
1)投產(chǎn)移行:
為版本投產(chǎn)準(zhǔn)備的數(shù)據(jù)遷移揪惦,參數(shù)統(tǒng)一設(shè)置等處理。
2)功能移行:
包括本部機構(gòu)調(diào)整罗侯、銀行資產(chǎn)購入或資產(chǎn)賣出丹擎、客戶信息整合等。
3)系統(tǒng)維護:
指針對生產(chǎn)中心常見的變更操作等所提供的批量工具歇父。
4、按批量應(yīng)用運行時間窗口的不同區(qū)分再愈,批量處理可分為:
  ·日終批量
  ·日間批量
  ·投產(chǎn)移行批量等

總體而言榜苫,批量處理的 5 大功能劃分與運行時間窗口的劃分并非一一對應(yīng)的。批量業(yè)務(wù)處理主體是在日間批量中翎冲,但是為了更多的避免與聯(lián)機交易的沖突垂睬,實際當(dāng)中同樣會在日終批量作業(yè)中安排大量的批量業(yè)務(wù)處理。對外圍系統(tǒng)供數(shù)是日終批量的主要功能抗悍,但數(shù)據(jù)處理主機的日終批量運行時間實際已經(jīng)是白天驹饺,甚至包括核心銀行主機,也存在因為業(yè)務(wù)數(shù)據(jù)時效性性要求缴渊,在日間也有對外圍應(yīng)用的數(shù)據(jù)下載處理赏壹,所有這些,無疑對批量處理的性能與效率提出了極高的要求衔沼。 批量處理的功能與結(jié)構(gòu)蝌借,簡單的圖示表示如下:

image.png

批量作業(yè)調(diào)度架構(gòu)設(shè)計

image.png

START1 到 STARTN昔瞧,表示日間批量處理的起始作業(yè),這些批量大部分是獨立存在的菩佑,前后關(guān)聯(lián)比較少自晰,各個應(yīng)用批量流程的作業(yè)可以各自開始和結(jié)束。
STRATAD 中 STARTJOB稍坯,表示日終批量的起始作業(yè)酬荞,不同應(yīng)用業(yè)務(wù)的日終批量均緊跟這個作業(yè)之后開始運行。
應(yīng)用作業(yè)瞧哟,表示各自業(yè)務(wù)的批量處理作業(yè)混巧,各應(yīng)用系統(tǒng)間互不干擾,各自運行绢涡。
關(guān)聯(lián)作業(yè)牲剃,表示各自業(yè)務(wù)的批量處理間,存在等待關(guān)系的作業(yè)雄可,應(yīng)用間的等待關(guān)系凿傅,依靠關(guān)聯(lián)作業(yè)標(biāo)識其是否已經(jīng)完成或是否可以開始。
ENDAD 中 ENDJOB数苫,表示日終批量的結(jié)束聪舒,日終所有作業(yè)均需要關(guān)聯(lián)到該作業(yè)上。數(shù)據(jù)備份作業(yè)可以選擇在該ENDJOB 作業(yè)結(jié)束后開始運行虐急。
OSTART1 到 OSTARTN箱残,表示運行在上午的日間批量的起始作業(yè),類似START1-STARTN止吁。

應(yīng)用系統(tǒng)批量劃分

在并行批量的設(shè)計中被辑,各應(yīng)用的業(yè)務(wù)功能自有邊界是首先可以考慮的并行劃分依據(jù)。各類業(yè)務(wù)功能的自然劃分敬惦,為此類批量處理的并行提供了現(xiàn)成可用的方法盼理,以某商業(yè)銀行的業(yè)務(wù)范圍劃分方法,日終的批量處理俄删,可劃分為如下幾大類:
1宏怔、業(yè)務(wù)支持類應(yīng)用:
如核算、清算畴椰、資產(chǎn)管理等臊诊,為各經(jīng)營類業(yè)務(wù)功能提供支持的應(yīng)用,可歸做一類斜脂。
2抓艳、業(yè)務(wù)功能類應(yīng)用:
如個人零售、個人貸款帚戳、個人信用卡壶硅、對公貸款威兜、對公存款等,各類面向具體客戶的經(jīng)營類業(yè)務(wù)應(yīng)用庐椒,應(yīng)用間有明顯的劃分邊界椒舵,可歸做一類。
3约谈、數(shù)據(jù)處理類應(yīng)用:
數(shù)據(jù)統(tǒng)計笔宿、篩選、下載等不直接包含對客功能的業(yè)務(wù)應(yīng)用的批量處理棱诱,可歸做一類泼橘。
從應(yīng)用歸屬的不同,進行日終批量功能及并行批量的設(shè)計迈勋,則日終批量功能可劃為如下較為獨立的幾塊:

image.png

需要注意的幾個問題:
1炬灭、按業(yè)務(wù)應(yīng)用劃分批量處理,應(yīng)在業(yè)務(wù)范圍的邊界下做劃分靡菇,即首先尊重業(yè)務(wù)在功能重归、管理上已有的劃分。
2厦凤、各應(yīng)用系統(tǒng)的劃分和獨立鼻吮,并不意味著各應(yīng)用系統(tǒng)間不再存在關(guān)聯(lián)關(guān)系,需要從業(yè)務(wù)功能與技術(shù)處理等多個角度较鼓,發(fā)掘出內(nèi)部潛在的前后關(guān)聯(lián)椎木,避免遺漏。

并行批量實現(xiàn)方法

傳統(tǒng)的批量處理博烂,所有的數(shù)據(jù)依次順序處理完畢香椎,我們可將其數(shù)據(jù)分成幾個大小均等的單位并行地進行處理。每個單
位數(shù)據(jù)的處理方式和業(yè)務(wù)功能禽篱,都基本與原來依次順序處理的方式一致畜伐,不同的地方是,原來由一套作業(yè)完成表中所有數(shù)據(jù)的處理谆级,現(xiàn)在由多套處理邏輯相同的作業(yè)流并發(fā)來完成,數(shù)據(jù)處理的效率將得到大幅的提升讼积。

image.png

第一步:對數(shù)據(jù)庫表進行分區(qū)

為什么要對進行數(shù)據(jù)表分區(qū)呢肥照?當(dāng)由多套作業(yè)流并發(fā)地發(fā)起對數(shù)據(jù)庫表的處理時,面臨的最大技術(shù)障礙是在數(shù)據(jù)頁勤众、索引頁上的訪問沖突舆绎。要避免并發(fā)訪問沖突,則需要將數(shù)據(jù)分成若干獨立的分區(qū)進行物理存儲们颜,這樣并發(fā)訪問數(shù)據(jù)時吕朵,不會因為訪問到相同的數(shù)據(jù)頁(由于相同表的不同 PARTITION 使用不同的物理存儲文件)猎醇,避免了因訪問沖突而導(dǎo)致的程序死鎖中斷或超時中斷。

數(shù)據(jù)分區(qū)的方法有很多努溃,可以按不同的業(yè)務(wù)功能歸屬分硫嘶,可以按交易產(chǎn)生的時間分,也可以按銀行分戶賬的歸屬梧税、業(yè)務(wù)客戶的歸屬等做區(qū)分沦疾。在金融行業(yè)的信息系統(tǒng)中,選擇機構(gòu)代號(俗稱地區(qū)號)作為數(shù)據(jù)分區(qū)的基準(zhǔn)第队,具有以下兩點突出的優(yōu)勢
1哮塞、在金融信息系統(tǒng)中,機構(gòu)號是金融業(yè)務(wù)核算的基本單位,以機構(gòu)號做劃分,則每套批量作業(yè)流程處理的數(shù)據(jù)基本是一個較為獨立的單位州邢,與其它數(shù)據(jù)之間不存在關(guān)聯(lián)性芯咧,每套作業(yè)流基本可以獨立運行互不干擾。
2遵倦、在金融信息系統(tǒng)中,機構(gòu)號廣泛出現(xiàn)在各類數(shù)據(jù)存儲中,其存在的普遍性和易識別性肆饶,也決定了其作為分區(qū)標(biāo)準(zhǔn)的客觀特性。
在目前流行的關(guān)系型數(shù)據(jù)庫中岖常,例如: DB2 驯镊、ORACLE 都支持?jǐn)?shù)據(jù)分區(qū)存儲的策略,只需要通過表空間參數(shù)定義竭鞍,為每個數(shù)據(jù)分區(qū)定義一個分區(qū)標(biāo)準(zhǔn)區(qū)間(最小值和最大值)板惑。當(dāng)有新的數(shù)據(jù)進入時,數(shù)據(jù)庫會自動根據(jù)設(shè)定的參數(shù)值偎快,將新數(shù)據(jù)存儲到指定的區(qū)域冯乘,這個過程不需要人為干預(yù)。

第二步:建立批次的對應(yīng)關(guān)系

當(dāng)對數(shù)據(jù)以“機構(gòu)號”完成了分區(qū)存儲(PARTITION)后晒夹,我們面臨的是如何建立批量單位與數(shù)據(jù)間對應(yīng)關(guān)系的問題裆馒。
這樣我們需要以“機構(gòu)號”為基礎(chǔ),建立《機構(gòu)號與批量單位對應(yīng)表》參數(shù)表丐怯,通過該參數(shù)表喷好,完成批量單位到機構(gòu)號,也即分區(qū)數(shù)據(jù)之間的對應(yīng)读跷。對應(yīng)關(guān)系具體可參考以下示例:

image.png

上表中的批量單位 001梗搅,對應(yīng)的機構(gòu)號是 0001 和 0010 之間的所有機構(gòu),而批量單位 002,對應(yīng)的機構(gòu)號則是 0011 和 0020 之間的所有機構(gòu)无切,批量單位003 類似荡短。
那么根據(jù)什么來確定一個批量單位處理多大的“機構(gòu)號區(qū)間”的數(shù)據(jù),如何確定適合的并發(fā)的批量單位個數(shù)呢哆键?我們可按如下的方法:

1掘托、保證不同批量單位間無交叉:并行批量的設(shè)計基本原則,即是不同批量單位間不會發(fā)生并發(fā)訪問的資源沖突問題洼哎,如此烫映,在數(shù)據(jù)和批量單位規(guī)劃上,應(yīng)注意不同的批量單位噩峦,不會訪問到相同的數(shù)據(jù)分區(qū)的數(shù)據(jù)锭沟。
2、確定單個批量單位處理容量:機構(gòu)號作為數(shù)據(jù)劃分的基礎(chǔ)识补,決定了最小的批量單位的處理量即是一個機構(gòu)的數(shù)據(jù)族淮,如此,可對需要處理的數(shù)據(jù)分機構(gòu)號做統(tǒng)計凭涂,按最小數(shù)據(jù)分區(qū)的數(shù)據(jù)總量不小于單個最大機構(gòu)數(shù)據(jù)的方法祝辣,確定單個批量單位的處理容量。
3切油、不保持同批量單位數(shù)據(jù)均衡:根據(jù)短板理論可知蝙斜,要提高系統(tǒng)整體的運行效率,就需要保證各個批量單位的數(shù)據(jù)基本均勻澎胡,如此各批量單位的運行時間才能基本相同孕荠,進而達(dá)到最大程度優(yōu)化整體批量目的。
4攻谁、最終確定并發(fā)批量單位總數(shù):每個批量單位的處理容量確定后稚伍,由于總的數(shù)據(jù)量是基本固定的,這樣即可確定并發(fā)批量單位的總數(shù)戚宦。

第三步:建立數(shù)據(jù)訪問的模式

一個批量單位就是一套完整的作業(yè)流个曙,作業(yè)中通過調(diào)用相應(yīng)的應(yīng)用程序來完成既定的業(yè)務(wù)功能。如何讓每套作業(yè)流按《機構(gòu)號與批量單位對應(yīng)表》設(shè)定的對應(yīng)方式訪問數(shù)據(jù)呢受楼?
我們通過改造批量作業(yè)流垦搬,在作業(yè)流輸入中為每套作業(yè)流分配一個特定的編號文件,通過對應(yīng)的處理程序艳汽,根據(jù)作業(yè)流中輸入的批量單位編號信息猴贰,結(jié)合《機構(gòu)號與批量單位對應(yīng)表》參數(shù),在編號與數(shù)據(jù)分區(qū)之間骚灸,建立起對應(yīng)關(guān)系糟趾,進而可以在程序內(nèi)指定數(shù)據(jù)訪問范圍慌植。具體范例如下:
1甚牲、傳統(tǒng)應(yīng)用程序訪問邏輯:
SELECT * FROM TABLE_A WHERE COLUMN_A = ? AND COLUMN_B = ? ……
2义郑、并行批量的程序訪問邏輯:
SELECT * FROM TABLE_A WHERE ‘機構(gòu)號’ BETWEEN 最小機構(gòu)號 AND 最大機構(gòu)號 AND COLUMN_A = ? AND COLUMN_B = ? ……
按照上述的改造方法,經(jīng)過對作業(yè)流和應(yīng)用程序的簡單改造丈钙,可以實現(xiàn)僅在作業(yè)流中指定批量單位信息非驮,即可按照《批量單位與機構(gòu)號對應(yīng)表》設(shè)定的對應(yīng)關(guān)系,并行地對海量數(shù)據(jù)做分批快速處理雏赦。

第四步:參數(shù)化設(shè)定批量單位

經(jīng)過以上的改造劫笙,作業(yè)流和應(yīng)用程序并發(fā)運行的條件已經(jīng)具備,下面介紹參數(shù)化設(shè)定批量單位的方法星岗,以減少作業(yè)及程序的開發(fā)和配置工作:
1填大、改造傳統(tǒng)的批處理作業(yè),在作業(yè)名的編排中俏橘,增加批量單位(編號)信息允华。
2、改造作業(yè)流寥掐,為每個作業(yè)步增加流內(nèi)數(shù)據(jù)靴寂,定義本套作業(yè)流對應(yīng)的批量單位編號。
3召耘、在實際運行前百炬,按設(shè)計好的批次數(shù)量,展開作業(yè)流污它,并完成作業(yè)流內(nèi)批量單位編號的參數(shù)化工作剖踊。
通過以上步驟,各并行單位的作業(yè)即可快速建立轨蛤,未來新增批次蜜宪,也可按此方式完成快速的擴展。

第五步:并行批量作業(yè)的提交

通過以上的手段祥山,在靜態(tài)上建立了多個批量單位圃验,在日常的生產(chǎn)運行中,如何能夠更準(zhǔn)確高效地控制和管理并發(fā)作業(yè)缝呕?
傳統(tǒng)的批量處理方式澳窑,往往由經(jīng)過專業(yè)培訓(xùn)的運行操作員,通過遠(yuǎn)程終端供常,按既定的作業(yè)排程要求摊聋,進行單個作業(yè)的逐一提交。傳統(tǒng)的手工提交方式栈暇,不論是在工作量上麻裁,還是在準(zhǔn)確度上,都存在諸多缺陷。隨著計算機技術(shù)的提高煎源,陸續(xù)出現(xiàn)了自動化調(diào)度作業(yè)的專業(yè)軟件色迂,比如 IBM 公司的 TWS 作業(yè)管理軟件。 并行批量模式下手销,作業(yè)的數(shù)量歇僧,及批量作業(yè)排程都變得更加復(fù)雜,更加需要專業(yè)軟件來管理和控制作業(yè)的運行锋拖。由于各個批量單位中的作業(yè)可以同時提交诈悍,所以同樣可以通過 TWS 來完成這一復(fù)雜的工作,其原則和設(shè)計方法兽埃,與傳統(tǒng)批量的方式是基本一致

隨著業(yè)務(wù)的高速發(fā)展侥钳,或會出現(xiàn)新增機構(gòu)或拆分機構(gòu)的需求,伴隨而來的柄错,即是新增批次的需求慕趴,在這個情況下,我們只需要增加《批量單位與機構(gòu)號對應(yīng)表》鄙陡,根據(jù)業(yè)務(wù)要求新建對應(yīng)關(guān)系冕房,即可快速地擴展批量單位,快速完成新增機構(gòu)批量系統(tǒng)需要完成的技術(shù)準(zhǔn)備工作趁矾。

image.png

核心批量流程優(yōu)化

以某商業(yè)銀行核心日終批量流程為例耙册,目前日終批量的關(guān)鍵路徑大致的流
程圖如下:

image.png

圍繞日終批量關(guān)鍵路徑,可主要包括如下優(yōu)化點:
1毫捣、增加上一日日結(jié)業(yè)務(wù)的收口

收口如昨日日結(jié)收口的作業(yè)包括如下:
日切后详拙,日志解析前必須完成的業(yè)務(wù);
日志解析蔓同;
補賬處理饶辙,總賬更新;
總分核對斑粱、試算平衡處理弃揽。

2、提前數(shù)據(jù)備份處理時間
上一日日結(jié)業(yè)務(wù)之后则北,即開始數(shù)交的備份恢復(fù)矿微,將數(shù)交批量的處理進一步提前。
日終批量的關(guān)鍵完成時間點尚揣,可設(shè)計如下:
上日業(yè)務(wù)記賬完成:日切后涌矢,日志解析前處理的上一日業(yè)務(wù),總體運行時間控制在 30 分鐘內(nèi)快骗。
上日業(yè)務(wù)處理完成:日切后娜庇,所有上日業(yè)務(wù)完全完成入賬等處理塔次,總體運行時間控制在 1.5 個小時內(nèi)。
日終批量完全結(jié)束:可要求所有應(yīng)用的批量處理時間控制在日切后 3 小時內(nèi)名秀。
按照上述 3 點整體時間控制的要求,各應(yīng)用科學(xué)地規(guī)劃各自應(yīng)用批量的作
業(yè)執(zhí)行流程,規(guī)劃后的日終批量大致的流程圖如下:

image.png

移行分類

按照移行的目的區(qū)分

投產(chǎn)移行:項目或系統(tǒng)的投產(chǎn)攒发,需要完成的數(shù)據(jù)遷移或數(shù)據(jù)結(jié)構(gòu)的調(diào)整偶妖。投產(chǎn)移行的主要特點是一次性。對于投產(chǎn)移行,在設(shè)計時可以考慮停聯(lián)機處理。而且程序設(shè)計時昏滴,在實現(xiàn)斷點再續(xù)有困難的情況下可以考慮使用備份表的方式處理程序的中斷。

功能性移行:主要是實現(xiàn)自身的數(shù)據(jù)按一定規(guī)則要求的遷移。與投產(chǎn)移行相反柑爸,功能性移行往往是多次的。或者是不同地區(qū)順次進行的移行绳姨。功能性移行最重要的一點竭宰,是必須支持聯(lián)機 24 小時哼审。

按照移行的對象區(qū)分

數(shù)據(jù)移行:移行的對象是數(shù)據(jù)春霍,主要是完成數(shù)據(jù)的遷移鸳慈。包括:舊系統(tǒng)到新系統(tǒng)的數(shù)據(jù)遷移;他系統(tǒng)到我行系統(tǒng)的數(shù)據(jù)遷移喧伞;同系統(tǒng)內(nèi)部移行走芋,包括不同數(shù)據(jù)結(jié)構(gòu)間的數(shù)據(jù)遷移,或數(shù)據(jù)自身的屬性發(fā)生改變潘鲫;我行自身不同系統(tǒng)間的移行翁逞。數(shù)據(jù)移行往往需要分行技術(shù)人員或者業(yè)務(wù)人員的配合進行。

結(jié)構(gòu)移行:因數(shù)據(jù)結(jié)構(gòu)發(fā)生變化而做的移行次舌。結(jié)構(gòu)移行對分行依賴程度較小。

應(yīng)用程序移行設(shè)計

目前主要分靜態(tài)程序移行和動態(tài)程序移行兽愤。靜態(tài)程序適用與通常情況下的移行彼念;而動態(tài)程序移行適用于當(dāng)移行有大量的針對不同數(shù)據(jù)結(jié)構(gòu)的相同操作的情況。移行程序往往具有一次性浅萧,即程序往往只運行一次逐沙。正是因為其僅運行一次,所以成敗的關(guān)鍵就全系于其一身洼畅,因此做移行程序設(shè)計的時候吩案,一個最重要的原則是力求移行程序的盡量簡單,避免移行程序因為過于復(fù)雜而在編碼時出現(xiàn)各類意想不到的錯誤帝簇。

移行的處理流程

移行的流程根據(jù)移行對象和移行要求的不同而不同徘郭。當(dāng)移行是針對某一個數(shù)據(jù)庫表進行的,完成的數(shù)據(jù)庫表內(nèi)部的數(shù)據(jù)的屬性變化(這些屬性通常不是索引)丧肴。往往采用的是直接更新的方式進行残揉。例如以前投產(chǎn)項目中的個人賬戶表的移行,需要將取款人的證據(jù)類型芋浮、證件號碼抱环、戶名等內(nèi)容進行更新的情況,系統(tǒng)設(shè)計時是采用一個程序直接完成這個表的相應(yīng)字段的更新纸巷。還有一種移行的處理流程是采用的比較多的而且較為通用的模式镇草,即表->文件->表的處理流程模式:

image.png

這種模式是最通用的模式,尤其使在不同系統(tǒng)之間進行移行或者在同系統(tǒng)的不同數(shù)據(jù)庫對象之間移行時瘤旨,往往采用這種模式梯啤。 表->文件->表的移行魔術(shù),具有如下優(yōu)點:
  1. 該模式流程清晰存哲。將復(fù)雜的移行功能分為多步進行条辟,使每一步的處理盡量簡化黔夭;
  2. 應(yīng)用程序?qū)帱c再續(xù)的實現(xiàn)更為容易。
  3. 對于數(shù)據(jù)的修改羽嫡,轉(zhuǎn)換本姥,可以在移行中間文件上進行。因為主機對文件的操作處理的效率遠(yuǎn)遠(yuǎn)大于對數(shù)據(jù)庫表的處理效率杭棵。所以如果移行的轉(zhuǎn)換處理較為復(fù)雜的情況下婚惫,采用在中間文件上進行轉(zhuǎn)換,可以在一定程度上縮短程序移行的時間魂爪。
  4. 移行優(yōu)化考慮發(fā)揮的余地較大先舷。在由表到文件的過程中,可以對表進行順讀滓侍,增加應(yīng)用的異步 I/O蒋川。在由文件到表的過程中,可以先對文件按照導(dǎo)入表的 PI 排序撩笆。這樣捺球,一方面,順序插入夕冲,使得插入過程中氮兵,數(shù)據(jù)庫對表的索引維護開銷較小,提高數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫表的效率歹鱼;另一方面泣栈,文件導(dǎo)入表之后,表內(nèi)的數(shù)據(jù)不需要做 REORG便已經(jīng)是順序排列弥姻。避免了在移行完成之后南片,對表的維護。

移行的時間點考慮

移行可供選擇的時間點包括:日切前(日間)庭敦、日切后批前铃绒、批后。其中日切前(日間)同批后在時間點上是相同的螺捐,只是由于參照物不同導(dǎo)致的叫法差異颠悬。總結(jié)以往的移行定血,絕大多數(shù)的移行都是選擇在批后進行赔癌。
在時間點的選擇上往往需要考慮的因素包括:
1、 版本投產(chǎn)的要求澜沟,尤其對與投產(chǎn)移行的程序灾票,通常選擇版本投產(chǎn)停聯(lián)機的時間進行,絕大多數(shù)的情況是批后茫虽;
2刊苍、 移行數(shù)據(jù)量的考慮既们,比如對聯(lián)機結(jié)算類日志的移行,往往選擇在批后正什,因為此時聯(lián)機結(jié)算類日志的數(shù)據(jù)量是最小的啥纸。
3、 移行當(dāng)日批量的考慮婴氮,主機的日終批量往往有時間要求斯棒,移行往往不能使得主機批量的推遲,否則會影響當(dāng)日日終報表下傳的時間主经∪倌海考慮這一點,移行往往選擇在批后罩驻,而不在批前穗酥。
4、 僅當(dāng)少數(shù)的情況下惠遏,移行有著特殊要求砾跃,且移行時間不長的情況,需要選擇在批前移行爽哎。例如蜓席,移行的目的是完成參數(shù)表的修改器一,而這個參數(shù)表在日切后的新工作日內(nèi)课锌,需要聯(lián)機使用移行后的參數(shù)表的情況,則需要在日切后祈秕,批前完成移行渺贤,重新下載參數(shù)表。

工行的核心批量

image.png

image.png

數(shù)據(jù)庫分區(qū)(PARTITION):將一個數(shù)據(jù)庫表空間分成多個獨立的存儲單元请毛,每個存儲單元就叫做一個數(shù)據(jù)庫分區(qū)(PARITION)志鞍,每個 PARTITION 都對應(yīng)一個單獨的物理文件,但是多個分區(qū)在邏輯上構(gòu)成一個完整的 table方仿。 并行耦合體:并行耦合體是指多個系統(tǒng)共享同一套系統(tǒng)文件固棚,在不同的機器上運行。多個系統(tǒng)互相協(xié)作仙蚜,進行負(fù)載均衡此洲,互相備份,而且系統(tǒng)具有良好的擴充性委粉,提供了充足的系統(tǒng)資源呜师,滿足日益增長的數(shù)據(jù)處理要求。

PARTITION 劃分原則

image.png

根據(jù)上述表的 PARTITION 劃分情況贾节,給出應(yīng)用整合后表的 PARTITION劃分設(shè)計汁汗,主要包含以下四大類:

  1. 表不分 PARITITION
  2. 分 PARTITION 的小表:表分 24 個 PARTITION
  3. 數(shù)據(jù)量大表:表分 47 個 PARTITION
  4. 數(shù)據(jù)量特大表:表分 206 個 PARTITION

邏緝整合后 PARTITION 的劃分遵循以下原則:

需要劃分 PARTITION 的表有兩大類:

  1. 并行批量涉及的表衷畦。
  2. 表數(shù)據(jù)量大于 2G,根據(jù)數(shù)據(jù)量增長估計將來會超過 4G 的表知牌。另外祈争,表記錄數(shù)如果超過 500 萬(如果記錄長度為 400,數(shù)據(jù)量為 2G)送爸,可以考慮劃分 PARTITION铛嘱。

PARTITION 大小:

  1. 劃分 PARTITION 后袭厂,每個 PARTITION 的大小不超過 2G墨吓。隨著生產(chǎn)運行,如果 PARTITION 大小超過了 3.5G纹磺,考慮把該 PARTITION 細(xì)分為 2 個帖烘。

PARTITION 個數(shù):

  1. 為了日常版本安裝時,維護方便橄杨,減小維護工作量秘症,對因為并行批量要求分 PARTITION 的小表,在 PARTITION 個數(shù)上保持統(tǒng)一式矫,并且和并行批量單位相適應(yīng)乡摹。對因為數(shù)據(jù)量特別大的表,在PARITION 個數(shù)上也保持統(tǒng)一采转。
  2. 對大數(shù)據(jù)量表盡可能做到南方和北方的數(shù)據(jù)分在不同的PARTITION 中聪廉,以達(dá)到以下目的:
    1在數(shù)據(jù)回裝時,南北數(shù)據(jù)可以同時回裝故慈,獲得最好的并發(fā)效果板熊,有利于數(shù)據(jù)移行。
    2有利于并行批量單位劃分察绷。
    3可以避免某個 PARTITION 因為南北方數(shù)據(jù)疊加干签,而超過 4G。
    4保證文件數(shù)量基本和目前南北中心的 DB2 文件數(shù)量相當(dāng)拆撼,不會有很大的增長容劳。
  3. 小表定義:現(xiàn)在生產(chǎn)環(huán)境,南方片分 18 個 PARTITION 的表闸度,北方片分 27 個 PARTITION 的表竭贩。
  4. 大數(shù)據(jù)量表定義:
    1 現(xiàn)在生產(chǎn)環(huán)境,南方片分 PARTITION 個數(shù)超過 18 的表筋岛,北方片分 PARTITION 個數(shù)超過 27 的表娶视。
    2現(xiàn)在北方片分 PARTITION 27 個或南方片分 PARTITION 18 個的表,但有的 PARTITION 數(shù)據(jù)量超過 2G 或記錄數(shù)超過 500 萬,并有可能繼續(xù)增加肪获,需要細(xì)分 PARTITION 的表寝凌。
  5. 整合目標(biāo)生產(chǎn)環(huán)境 PARTITION 數(shù)量:
    根據(jù)上面幾個 PARTITION 個數(shù)方面的原則,應(yīng)用整合后小表統(tǒng)一劃分為 24 個 PARITION孝赫,大數(shù)量量表統(tǒng)一劃分為 47 個PARTITION较木,數(shù)據(jù)量特大表劃分為 206 個 PARTITION。

并行批量單位劃分原則

并行批量單位的劃分直接影響小表 PARTITION 的劃分青柄。并行批量單位的劃分原則是:保證各個批次需要的處理的數(shù)據(jù)量基本均衡伐债,并且處理的數(shù)據(jù)量和目前生產(chǎn)上一個批次處理的數(shù)據(jù)量基本相當(dāng),以保證并行批量的運行時間基本和現(xiàn)在生產(chǎn)上的運行時間差不多致开。目前南北方片批次的劃分情況是:北方片 8 個批次峰锁、南方片 9 個批次,另外還有:總行双戳、卡中心虹蒋、香港分行 3 個特殊批次。數(shù)據(jù)邏緝整合后批量單位劃分情況如下:普通分行分 16 個批次飒货,另外還有:總行魄衅、卡中心、香港分行 3 個特殊批次塘辅。具體情況如下表:

image.png

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末晃虫,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子扣墩,更是在濱河造成了極大的恐慌哲银,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沮榜,死亡現(xiàn)場離奇詭異盘榨,居然都是意外死亡喻粹,警方通過查閱死者的電腦和手機蟆融,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來守呜,“玉大人型酥,你說我怎么就攤上這事〔槠梗” “怎么了弥喉?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長玛迄。 經(jīng)常有香客問我由境,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任虏杰,我火速辦了婚禮讥蟆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘纺阔。我一直安慰自己瘸彤,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布笛钝。 她就那樣靜靜地躺著质况,像睡著了一般。 火紅的嫁衣襯著肌膚如雪玻靡。 梳的紋絲不亂的頭發(fā)上结榄,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天,我揣著相機與錄音囤捻,去河邊找鬼潭陪。 笑死,一個胖子當(dāng)著我的面吹牛最蕾,可吹牛的內(nèi)容都是我干的依溯。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼瘟则,長吁一口氣:“原來是場噩夢啊……” “哼黎炉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起醋拧,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤慷嗜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后丹壕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體庆械,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年菌赖,在試婚紗的時候發(fā)現(xiàn)自己被綠了缭乘。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡琉用,死狀恐怖堕绩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情邑时,我是刑警寧澤奴紧,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站晶丘,受9級特大地震影響黍氮,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一沫浆、第九天 我趴在偏房一處隱蔽的房頂上張望觉壶。 院中可真熱鬧,春花似錦件缸、人聲如沸铜靶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽争剿。三九已至,卻和暖如春痊末,著一層夾襖步出監(jiān)牢的瞬間蚕苇,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工凿叠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留涩笤,地道東北人。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓盒件,卻偏偏與公主長得像蹬碧,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子炒刁,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內(nèi)容