◆孔祥宗 杜叢強(qiáng)
DB2并行數(shù)據(jù)庫(kù)核心技術(shù)分析
◆孔祥宗 杜叢強(qiáng)
(山東省農(nóng)村信用社聯(lián)合社 山東 250000)
目前,DB2并行數(shù)據(jù)庫(kù)系統(tǒng)已被廣泛應(yīng)用于銀行業(yè)的諸多核心業(yè)務(wù)系統(tǒng)中。本文分別從并行數(shù)據(jù)庫(kù)系統(tǒng)的目標(biāo)、本質(zhì)、原則、方法及邏輯結(jié)構(gòu)模型等方面,對(duì)DB2并行數(shù)據(jù)庫(kù)系統(tǒng)的核心技術(shù)做一全面、系統(tǒng)化分析,望能為DB2實(shí)踐應(yīng)用提供些許借鑒與指導(dǎo)。
并行數(shù)據(jù)庫(kù)系統(tǒng);DB2;表分區(qū)
伴隨科學(xué)技術(shù)的不斷發(fā)展,信息化程度日漸提升,各個(gè)行業(yè)所需處理的信息量持續(xù)增大,特別是在通信、海洋開發(fā)、航天等領(lǐng)域,數(shù)據(jù)規(guī)模已達(dá)TB級(jí),針對(duì)如此大的數(shù)據(jù)量,傳統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)已經(jīng)難以滿足實(shí)際需要。所以,大力開展并行數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)研究,將其更好地用于數(shù)據(jù)的管理與儲(chǔ)存,意義重大。本文根據(jù)當(dāng)前信息技術(shù)發(fā)展需要,探討了一種新型的DB2并行數(shù)據(jù)庫(kù)核心技術(shù),望能為數(shù)據(jù)領(lǐng)域發(fā)展有所幫助。
現(xiàn)階段,在整個(gè)銀行業(yè)當(dāng)中,諸如征信系統(tǒng)、支付清算系統(tǒng)及記賬系統(tǒng)等核心業(yè)務(wù)系統(tǒng),伴隨業(yè)務(wù)范圍的擴(kuò)充,業(yè)內(nèi)內(nèi)容的增加,以及業(yè)務(wù)流程的轉(zhuǎn)變、業(yè)務(wù)方式的調(diào)整,業(yè)務(wù)系統(tǒng)當(dāng)中所充斥的生產(chǎn)性子系統(tǒng),每日均需接受與應(yīng)對(duì)數(shù)量龐大的高并發(fā)實(shí)時(shí)訪問,在此過程中,需要吐出可以用海量一詞來(lái)形容的交易數(shù)據(jù);針對(duì)銀行企業(yè)來(lái)講,這些交易信息、數(shù)據(jù)可謂無(wú)價(jià)資源,業(yè)務(wù)系統(tǒng)當(dāng)中配套的管理性子系統(tǒng),需要根據(jù)實(shí)際情況及需要,對(duì)每日所生成的海量交易數(shù)據(jù)進(jìn)行不間斷的、實(shí)時(shí)性的歸檔,開展統(tǒng)計(jì)學(xué)分析,并對(duì)金融服務(wù)、貨幣政策等業(yè)務(wù)價(jià)值進(jìn)行深入、全面的挖掘與處理。通常情況下,其數(shù)據(jù)容量可以達(dá)到驚人的TB級(jí),甚至達(dá)到了更為驚人的PB級(jí)。銀行企業(yè)發(fā)展至今,數(shù)據(jù)信息量仍然處于持續(xù)攀升狀態(tài),因此,對(duì)于傳統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)而言,其已經(jīng)無(wú)法滿足現(xiàn)階段的空間需求。
1945年,世界首臺(tái)電子管計(jì)算機(jī)應(yīng)運(yùn)而生,時(shí)至今日,已有七十余年的歷史,在此進(jìn)程中,計(jì)算機(jī)硬件得到全面、深層化發(fā)展,尤其是在微處理器方面,更是發(fā)展勢(shì)頭迅猛,處理器在具體的運(yùn)算性能方面,往往用摩爾定律來(lái)提速,每1.5年速度便能提升1倍;而在主存儲(chǔ)器方面,其容量可以每3~4年便增加1倍。而針對(duì)硬盤容量來(lái)講,則可每年提升60%,另外,還需要指出的是,這些硬件的價(jià)格始終呈現(xiàn)下跌狀態(tài),整個(gè)性價(jià)比始終呈提升趨勢(shì),有力推動(dòng)著新型計(jì)算機(jī)體系機(jī)構(gòu)的不斷發(fā)展與完善?,F(xiàn)階段,在業(yè)界范圍內(nèi),始終在提倡將并行處理機(jī)當(dāng)作用于滿足實(shí)時(shí)性能計(jì)算需求以及海量數(shù)據(jù)處理需求的解空間,為此領(lǐng)域問題的有效解決奠定堅(jiān)實(shí)、高質(zhì)量的物質(zhì)基礎(chǔ)。
在大規(guī)模并行處理機(jī)的解空間與海量數(shù)據(jù)實(shí)時(shí)處理的問題空間之間,因二者有著不同的處理邏輯,在概念上也不同,要想將此距離較好地彌補(bǔ)掉,需從當(dāng)前的問題空間映射至解空間,構(gòu)建映射函數(shù):f:y=f(x),其定義域是:{x/x=海量數(shù)據(jù)實(shí)時(shí)處理的問題空間的處理邏輯與概念},定義域:{y/y=大規(guī)模并行處理機(jī)解空間的處理邏輯與概念}。由此得知,針對(duì)并行數(shù)據(jù)庫(kù)系統(tǒng)來(lái)講,其核心課概括為:自海量數(shù)據(jù)實(shí)時(shí)處理的問題空間至大規(guī)模并行處理機(jī)的解空間的映射f。此外,另需強(qiáng)調(diào)的是,自問題空間直接映射至解空間,在此過程中會(huì)存在一定復(fù)發(fā)性,為了施加有效控制,需專門構(gòu)建一個(gè)復(fù)合映射函數(shù)f,也就是f(x)=P(L(x)),其中,L就是自問題空間至并行數(shù)據(jù)庫(kù)系統(tǒng)之間的邏輯映射,而對(duì)于P來(lái)講,就是自并行數(shù)據(jù)庫(kù)系統(tǒng)至解空間的物理映射。建立模型是實(shí)現(xiàn)映射的主要方式與手段,專門為邏輯映射構(gòu)建圍繞并行數(shù)據(jù)庫(kù)系統(tǒng)的邏輯結(jié)構(gòu)模型,而針對(duì)物理映射,則專門為其構(gòu)建并行數(shù)據(jù)庫(kù)系統(tǒng)的物理結(jié)構(gòu)模型。
由映射f的相關(guān)定義得知,高性能、高可用性為并行數(shù)據(jù)庫(kù)系統(tǒng)的目標(biāo)所在。冗余機(jī)制保證高可用性的實(shí)現(xiàn),而并行機(jī)制保證高性能。
針對(duì)高性能來(lái)講,其主要由2個(gè)指標(biāo)來(lái)度量,其一為線性擴(kuò)展,其二是線性加速。假設(shè)無(wú)并行性,將1個(gè)單位計(jì)算資源投入,那么在1個(gè)單位時(shí)間中,可以將1個(gè)單位計(jì)算規(guī)模的1個(gè)計(jì)算任務(wù)完成。所謂線性加速,從根本上來(lái)講,就是將n個(gè)單位計(jì)算資源投入,在1/n個(gè)單位計(jì)算時(shí)間中,將1個(gè)單位計(jì)算規(guī)模的1各計(jì)算任務(wù)完成。針對(duì)線性擴(kuò)展而言,即把n個(gè)單位計(jì)算資源投入,在指定的1個(gè)單位時(shí)間中,將1個(gè)單位計(jì)算規(guī)模的n個(gè)計(jì)算任務(wù)完成。
在實(shí)際操作中,為了能使并行數(shù)據(jù)庫(kù)系統(tǒng)達(dá)成上述目標(biāo),需要秉持如下原則:從之前的有限構(gòu)建無(wú)限。也就是沒有一臺(tái)無(wú)限快的處理器來(lái)提供無(wú)限能力的計(jì)算資源,而是借助于一定的結(jié)構(gòu)關(guān)系,由無(wú)限多個(gè)有限能力的計(jì)算資源,來(lái)構(gòu)建一個(gè)有無(wú)限能力的計(jì)算資源。此種結(jié)構(gòu)關(guān)系便為本文所指出的并行計(jì)算體系結(jié)構(gòu)。針對(duì)并行機(jī)構(gòu)的實(shí)現(xiàn)方法來(lái)講,可劃分為兩種,一種是分區(qū)并行性,另外一種是流水線并行性。針對(duì)流水線并行性而言,就是串聯(lián)一個(gè)關(guān)系運(yùn)算的輸出結(jié)果,并將其接入到另外一個(gè)關(guān)系運(yùn)算所對(duì)應(yīng)的輸入端,使各個(gè)關(guān)系運(yùn)算之間形成和諧、高效的流水線,借助于流水線深度,來(lái)得到并行性。需要指出的是,在關(guān)系運(yùn)算過程中,流水線大小、深度等因素,在某種程度上會(huì)對(duì)其并行性發(fā)揮造成限制。對(duì)于分區(qū)并行性而言,從基本層面來(lái)分析,即轉(zhuǎn)化大任務(wù),使之成為若干個(gè)彼此獨(dú)立的小任務(wù),包含兩個(gè)方面,即并行運(yùn)算與數(shù)據(jù)分區(qū),也就是對(duì)大規(guī)模數(shù)據(jù)集進(jìn)行分割,使之成為若干小規(guī)模數(shù)據(jù)集,使原本一個(gè)整體的關(guān)系運(yùn)算,被劃分為若干相同的子關(guān)系運(yùn)算;針對(duì)此些子運(yùn)算來(lái)講,其均作用于各小規(guī)模數(shù)據(jù)集上。
DB2并行數(shù)據(jù)庫(kù)系統(tǒng)的邏輯結(jié)構(gòu)模型為:針對(duì)DN2數(shù)據(jù)庫(kù)分區(qū)來(lái)講,在對(duì)其進(jìn)行設(shè)計(jì)時(shí),多選用分區(qū)并行性中的散列分區(qū)策略來(lái)實(shí)現(xiàn)。各數(shù)據(jù)庫(kù)分區(qū)被稱之為數(shù)據(jù)庫(kù)節(jié)點(diǎn),或者是直接被稱為節(jié)點(diǎn)。各數(shù)據(jù)庫(kù)分區(qū)均有專屬自身的計(jì)算資源,比如磁盤、主存儲(chǔ)器、CPU等。而對(duì)于各數(shù)據(jù)庫(kù)分區(qū)來(lái)講,其均為其一獨(dú)立的數(shù)據(jù)庫(kù),而且均有自己的索引、數(shù)據(jù)、配置穩(wěn)健等。查詢間、節(jié)點(diǎn)間、查詢內(nèi)部及節(jié)點(diǎn)內(nèi)為支持的并行性粒度。無(wú)橫向擴(kuò)展及限制的規(guī)模。以分區(qū)鍵為基礎(chǔ),利用散列函數(shù),實(shí)現(xiàn)數(shù)據(jù)到各數(shù)據(jù)庫(kù)分區(qū)的均勻映射,如果用于對(duì)外發(fā)出SQL操作時(shí),那么此時(shí)處于被連接狀態(tài)的分區(qū),便可成為協(xié)調(diào)節(jié)點(diǎn),主要職責(zé)就是對(duì)用戶的各種請(qǐng)求進(jìn)行處理,且依據(jù)分區(qū)鍵與分布圖,分解用戶的請(qǐng)求,使之成為多個(gè)子任務(wù),然后交給各個(gè)分區(qū)進(jìn)行并行處理,最后,匯總各分區(qū)的執(zhí)行結(jié)果,返回給用戶。
針對(duì)DB2表空間來(lái)講,其在設(shè)計(jì)中選用的是分區(qū)并行性中的輪轉(zhuǎn)法策略,DB2中又被稱作條帶化。容器構(gòu)成表空間,且還是數(shù)據(jù)的物理存儲(chǔ),若在1個(gè)表空間中同時(shí)有多個(gè)容器,則在寫容器時(shí),數(shù)據(jù)是依據(jù)循環(huán)方式按塊來(lái)寫的。當(dāng)將第一個(gè)容器寫完之后,便可以寫第二個(gè)容器,以此類推。
在DB2并行數(shù)據(jù)庫(kù)系統(tǒng)的邏輯結(jié)構(gòu)模型向大規(guī)模并行處理機(jī)的解空間進(jìn)行映射時(shí),為了能夠給予最大支持,需將DB2并行數(shù)據(jù)庫(kù)系統(tǒng)相應(yīng)物理結(jié)構(gòu)模型引入。
針對(duì)大規(guī)模并行處理機(jī)MPP來(lái)講,其主要有無(wú)共享、共享磁盤及共享內(nèi)存等物理結(jié)構(gòu)。
全部的處理器與磁盤共享一個(gè)主存儲(chǔ)器,總線連接。其優(yōu)點(diǎn)為:在各個(gè)處理器間,有著非常高的通信效率。不足之處就是其規(guī)模不得大于64個(gè)處理器,不然會(huì)出現(xiàn)瓶頸。
全部處理器共享一個(gè)磁盤。互聯(lián)網(wǎng)進(jìn)行連接,各處理器均能對(duì)全部磁盤進(jìn)行訪問,各處理器均有專屬自己的主存儲(chǔ)器。容錯(cuò)性為其優(yōu)點(diǎn),速度較慢為其不足。
從根本上來(lái)講,就是各個(gè)處理器對(duì)公共主存儲(chǔ)器并不共享,不共享磁盤。其優(yōu)點(diǎn)為無(wú)共享體系結(jié)構(gòu),擴(kuò)展性更好,能支持諸多處理器工作,不足是在進(jìn)行數(shù)據(jù)傳輸時(shí),會(huì)涉及到兩端的軟件交互,速度相對(duì)較慢。通過對(duì)上述物理結(jié)構(gòu)進(jìn)行比較,得知無(wú)共享SN的結(jié)構(gòu)與架構(gòu)高性能數(shù)據(jù)庫(kù)系統(tǒng)更為適宜,因此,DB2可優(yōu)先選擇。
綜上,本文探討了一種能滿足高可靠性需求及提高吞吐量的問題空間,指出了解空間的映射及模型,另外,還對(duì)DB2并行數(shù)據(jù)庫(kù)的查詢性能的構(gòu)成進(jìn)行了深入剖析。從中得知,DB2并行數(shù)據(jù)庫(kù)有著強(qiáng)大的功能類型,其在銀行業(yè)中有著重要的應(yīng)用價(jià)值。
[1]張愛文,王宇穎.基于查詢優(yōu)化的并行數(shù)據(jù)庫(kù)自動(dòng)數(shù)據(jù)劃分設(shè)計(jì)[J].哈爾濱師范大學(xué)自然科學(xué)學(xué)報(bào),2004.
[2]杜叢強(qiáng),孫丙騰. DB2數(shù)據(jù)庫(kù)讀寫分離技術(shù)在銀行核心系統(tǒng)中的應(yīng)用[J].信息技術(shù)與信息化,2017.
[3]張勤.主機(jī)DB2數(shù)據(jù)庫(kù)重組技術(shù)的應(yīng)用與實(shí)踐[J].中國(guó)金融電腦,2011.