在最近發(fā)布的DB2更新版本中,IBM已經(jīng)加入了一套統(tǒng)稱代號(hào)為BLU的加速技術(shù),承諾讓這個(gè)古老的數(shù)據(jù)庫(kù)管理系統(tǒng)更適合于運(yùn)行大型的內(nèi)存數(shù)據(jù)分析工作。
由IBM研究和開(kāi)發(fā)實(shí)驗(yàn)室開(kāi)發(fā),BLU(此開(kāi)發(fā)代號(hào)代表“big data, lightning fast, ultra-easy”)整合了柱狀處理(columnar processing)、重復(fù)數(shù)據(jù)刪除、并行向量處理(parallel vector processing)和數(shù)據(jù)壓縮等技術(shù)。
BLU的重點(diǎn)是使數(shù)據(jù)庫(kù)“內(nèi)存優(yōu)化”,IBM信息管理軟件CTO Tim Vincent說(shuō),“它將會(huì)在內(nèi)存中運(yùn)行,但你不必把一切都放入內(nèi)存之中。”并且BLU還可以大量消除提高SQL查詢性能所需要的手動(dòng)調(diào)節(jié)。
IBM聲稱,由于BLU整合了大幅改善分析能力和簡(jiǎn)化管理的一系列技術(shù),DB2 10.5能夠?qū)?shù)據(jù)分析速度提高25倍以上。這一改進(jìn)可以消除企業(yè)購(gòu)買一個(gè)單獨(dú)的內(nèi)存數(shù)據(jù)庫(kù)(例如甲骨文的TimesTen)的需求,為了快速的數(shù)據(jù)分析和事務(wù)處理工作。
在網(wǎng)上,IBM提供了一個(gè)例子,32核心系統(tǒng)如何使用BLU技術(shù),可以在不到一秒鐘的時(shí)間內(nèi)對(duì)一個(gè)10TB的數(shù)據(jù)集執(zhí)行查詢。“在10TB之中,你[可能]只有25%的數(shù)據(jù)交互用于日常運(yùn)作。你只需要保持這25%的數(shù)據(jù)在內(nèi)存之中,” Vincent說(shuō),“你今天可以以低于35,000 美元的價(jià)格買到一個(gè)擁有1TB的RAM和5TB固態(tài)存儲(chǔ)的服務(wù)器。”
此外,使用DB2可以削減運(yùn)行一個(gè)單獨(dú)的數(shù)據(jù)倉(cāng)庫(kù)的勞動(dòng)力成本,可用的數(shù)據(jù)庫(kù)管理員通常都比數(shù)據(jù)倉(cāng)庫(kù)專家要多。在某些情況下,它甚至可以作為一個(gè)更易于維護(hù)的替代Hadoop的數(shù)據(jù)處理平臺(tái),Vincent說(shuō)。新的技術(shù)之一的壓縮算法,能夠以這樣的一種方式存儲(chǔ)數(shù)據(jù),即在某些情況下,數(shù)據(jù)的讀取無(wú)需首先進(jìn)行解壓縮的工作。Vincent解釋說(shuō),數(shù)據(jù)壓縮的順序就是它的存儲(chǔ)一致,這意味著謂語(yǔ)操作,如添加 Where子句的查詢,不用先行解壓縮數(shù)據(jù)集就可以執(zhí)行。讓數(shù)據(jù)在整個(gè)分析過(guò)程中保持壓縮狀態(tài),能夠大大縮短分析所需要的時(shí)間。
節(jié)省時(shí)間的另一個(gè)訣竅:該軟件保存一個(gè)元數(shù)據(jù)表,其中列出了每個(gè)數(shù)據(jù)頁(yè)或每列的數(shù)據(jù)高低關(guān)鍵值。因此,執(zhí)行查詢時(shí),數(shù)據(jù)庫(kù)可以檢查,看看是否有任何尋找的值在數(shù)據(jù)頁(yè)上。“如果該頁(yè)面不在內(nèi)存中,我們并不需要將其讀入內(nèi)存;如果它是在內(nèi)存中,我們不必把它通過(guò)總線帶到CPU,并燒毀CPU挨個(gè)分析頁(yè)面上的所有值,”Vincent說(shuō),“這使我們能夠更有效地利用我們的CPU和帶寬。”通過(guò)柱狀處理,查詢可以只拉進(jìn)在數(shù)據(jù)庫(kù)表中選定的列,而不是所有的行,那樣將會(huì)消耗更多的內(nèi)存。Vincent表示:“我們已經(jīng)開(kāi)發(fā)出了一種算法,對(duì)確定哪些列和列的哪些范圍你想要緩存到內(nèi)存中非常有效。”
在硬件方面,軟件自帶并行向量處理的能力,這是一種發(fā)出一個(gè)單一的指令到多個(gè)處理器的方式,采用SIMD(單一指令多數(shù)據(jù)流)指令集,可用在英特爾和PowerPC芯片。因而該軟件可以運(yùn)行一個(gè)單一的查詢針對(duì)多列,可以分析跨處理器的并聯(lián)數(shù)據(jù),系統(tǒng)可以放在寄存器。“寄存器是系統(tǒng)內(nèi)存利用方面最有效率的。”Vincent說(shuō)。
據(jù)悉,在測(cè)試過(guò)程中,結(jié)合使用BLU加速的創(chuàng)新功能,很多查詢功能在單項(xiàng)分析負(fù)載中運(yùn)行速度比以往要快到1000倍以上。
在研究新的途徑將大型數(shù)據(jù)庫(kù)塞入到服務(wù)器內(nèi)存的道路上,IBM并不孤單。上周,微軟宣布它的SQL Server 2014也配備了多項(xiàng)新的技術(shù),統(tǒng)稱為Hekaton,包括以最大限度地利用運(yùn)行內(nèi)存,以及借用Excel的PowerPivot技術(shù)的柱狀處理技術(shù)。
Monash Research的數(shù)據(jù)庫(kù)分析師Curt Monash指出,隨著IBM DB2 10.5版本的發(fā)布,Oracle現(xiàn)在是唯一一個(gè)沒(méi)有真正的柱狀處理能力的主流關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)供應(yīng)商。
IBM自己使用DB2 10.5的 BLU組件作為DB2 SmartCloud基礎(chǔ)設(shè)施即服務(wù)(IaaS)的基石,以增強(qiáng)數(shù)據(jù)報(bào)告和分析工作的能力。另外,BLU技術(shù)還可以插入到IBM其他的數(shù)據(jù)存儲(chǔ)和分析產(chǎn)品,比如Informix。