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