既然很多行業(yè)的系統(tǒng)里頭用了將近30年傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,在數(shù)據(jù)體量小的時候大家用的都已經(jīng)很成熟和很完備了。我們大數(shù)據(jù)現(xiàn)在爆炸式的增長,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫是否可以支撐大數(shù)據(jù)的應(yīng)用呢?因?yàn)閭鹘y(tǒng)的關(guān)系型數(shù)據(jù)庫基本上是屬于SMP的架構(gòu),基本是單機(jī),或者共享存儲的架構(gòu),這種架構(gòu)難以處理海量數(shù)據(jù),因?yàn)椴荒芎芎玫臄U(kuò)展。數(shù)據(jù)體量這么大,其實(shí)它需要更多的資源,數(shù)據(jù)無限的擴(kuò)充,它就需要無限快的處理器和無限容量和(無限帶寬的存儲,對客戶來說他希望有這樣的設(shè)備,而且不希望價格太貴。當(dāng)然沒有一個獨(dú)立的服務(wù)器可以提供無限快的處理。那么,一個解決方法就是我們用有限快的服務(wù)器成立無限的數(shù)量能達(dá)到無限快的處理能力,這也就是我們說的分布式MPP。
我們看一下,我們剛才講了以前一直都用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫來支撐我們的各種系統(tǒng)的應(yīng)用。這里頭我們把應(yīng)用分為事務(wù)類和分析類的應(yīng)用,隨著互聯(lián)網(wǎng)的發(fā)展,我們也可以做一些互聯(lián)網(wǎng)上的應(yīng)用。當(dāng)時因?yàn)閿?shù)據(jù)體量比較小,所以一種架構(gòu)支持多類應(yīng)用,隨著數(shù)據(jù)體量不斷的增大,一種架構(gòu)它在分析類以及互聯(lián)網(wǎng)上都不適合了。我們說大數(shù)據(jù)時代導(dǎo)致這個架構(gòu)的多元化,也需要把它的應(yīng)用進(jìn)行細(xì)分和拆分。對于事務(wù)類的NITP這類的應(yīng)用還是可以使用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,我們稱之為OldSQL。對于分析類的這種應(yīng)用,像大數(shù)據(jù)平臺它基本導(dǎo)入的都是歷史數(shù)據(jù),已經(jīng)發(fā)生過的數(shù)據(jù)加載到大數(shù)據(jù)平臺來,它主要做分析,像客戶的營銷、決策,靠這些分析來得到有力的數(shù)據(jù)支撐。這樣我們就需要用一種新型的數(shù)據(jù)庫。在互聯(lián)網(wǎng)上大家有有目共識,現(xiàn)在很多互聯(lián)網(wǎng)企業(yè)都用NoSQL,Hadoop為基礎(chǔ)的架構(gòu)支撐大數(shù)據(jù)的應(yīng)用。
隨著數(shù)據(jù)體量的增大,我們認(rèn)為大數(shù)據(jù)平臺應(yīng)該使用可選擇的平臺,就是NewSQL MPP的數(shù)據(jù)庫以及以Hadoop為主的NoSQL的架構(gòu)。這三大陣營其實(shí)有很多產(chǎn)品,大家比較熟悉的事務(wù)型的OldSQL里面最典型的就是Oracle,還有DB2等。NewSQL領(lǐng)域老的就是TERADATA,銀行以前建大數(shù)據(jù)平臺的時候沒有選擇,只能選擇TERADATA,這個不是說它不好,是因?yàn)樗糜靡惑w機(jī)設(shè)備。在互聯(lián)網(wǎng)的NoSQL領(lǐng)域都是以Hadoop生態(tài)圈的一些產(chǎn)品為主,而且很多公司都在做這方面的,因?yàn)樗情_源的,而且它不是一個產(chǎn)品,它是一系列的產(chǎn)品。所以,它不像NewSQL都是商業(yè)的數(shù)據(jù)庫產(chǎn)品。后面還有Hadoop專門的公開課,所以我就不多做介紹了。
傳統(tǒng)的關(guān)系型數(shù)據(jù)庫存儲方面以行存儲,都是行存儲,一行記錄存在一個塊里頭,取數(shù)據(jù)的時候非常方便。架構(gòu)基本上是SMP的架構(gòu)。NewSQL是以列存儲,按列進(jìn)行存儲,它也是支持關(guān)系型的。它的架構(gòu)就已經(jīng)擴(kuò)展到MPP分布式架構(gòu)上了。那么,NoSQL就是以SDFS,分布式存儲進(jìn)行存儲的,另外它用Key-Value,它的架構(gòu)也是MPP的。大數(shù)據(jù)來了,各個陣營的產(chǎn)品其實(shí)它們也都做了很多的技術(shù)創(chuàng)新。分別在內(nèi)存計算、分布式計算,以及采用一些新的硬件,像我們說的閃存,還有高速網(wǎng)絡(luò),4GB的 Infiniband網(wǎng)絡(luò)都可以支持,都是為了提升性能。
大數(shù)據(jù)的平臺,具體這三個陣營里頭應(yīng)該有什么樣的解決方案呢?目前大數(shù)據(jù)平臺處理的數(shù)據(jù)應(yīng)該是一個全量數(shù)據(jù),而不是樣本采集的一些個別的數(shù)據(jù),是全量數(shù)據(jù)。而且它建立大數(shù)據(jù)平臺,它不是說只是做這一個系統(tǒng)的這樣一緯分析,是把多個數(shù)據(jù)源的數(shù)據(jù)都加載到這一個平臺上來,進(jìn)行多維的多元的分析,這么大的體量用一種架構(gòu)肯定是不行的。我們有這三大陣營的產(chǎn)品,我們就要發(fā)揮他們各自的優(yōu)勢,取長補(bǔ)短。我們說傳統(tǒng)事物型的數(shù)據(jù)庫主要適用于下數(shù)據(jù)量,而且業(yè)務(wù)邏輯復(fù)雜,并發(fā)度高的事務(wù)型的業(yè)務(wù)場景,主要是OLTP。新型MPP的數(shù)據(jù)庫適合處理大規(guī)模的復(fù)雜分析,而且是TB級別的數(shù)據(jù)的查詢、關(guān)聯(lián)這些場景。Hadoop NoSQL平臺適合處理非結(jié)構(gòu)化數(shù)據(jù),還有流數(shù)據(jù)處理,以及大規(guī)模批量的目的作業(yè),這是它的長項。所以,在大數(shù)據(jù)時代可以說要把應(yīng)用做在分而治之?dāng)?shù)據(jù)處理的綜合的解決方案。
既然這三個產(chǎn)品它們要混合使用,那么,它們也有一個選型從數(shù)據(jù)量來看。TB級別,關(guān)于OLTP的應(yīng)用,處理高價值密度的結(jié)構(gòu)化數(shù)據(jù),我們還是采用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,在TB到PB級別的數(shù)量量上,我們處理分析類應(yīng)用我們就用新型的MPP 數(shù)據(jù)庫,對于更大規(guī)模數(shù)據(jù)處理的時候,它的價值密度其實(shí)已經(jīng)很低了。我們這就需要用Hadoop為主的NoSQL。但是,我們可以用NoSQL的技術(shù)可以把低價值密度的數(shù)據(jù)經(jīng)過一些轉(zhuǎn)換、清洗,或者是一些它可以把它深度的匯總,或者抽取出有價值的這種數(shù)據(jù),然后它體量就會減少,然后再加載到MPP數(shù)據(jù)庫里頭,然后再做復(fù)雜的分析、統(tǒng)計。所以,未來大數(shù)據(jù)應(yīng)用的趨勢是混搭架構(gòu)。我們對于在線的OLTP業(yè)務(wù)有事務(wù)型的數(shù)據(jù)庫,把數(shù)據(jù)可以加載到MPP的數(shù)據(jù)庫里頭?;蛘哂蠬adoop,它在處理的一些低價值密度的數(shù)據(jù),處理完的數(shù)據(jù)要灌到MPP數(shù)據(jù)庫里頭,然后由MPP數(shù)據(jù)庫做對上層的應(yīng)用的核心支撐分析類的應(yīng)用。