大家可以看到,大部分的Hadoop用戶都在用這個(gè)技術(shù)來做數(shù)據(jù)倉庫,我們后面講一下為什么是這種場景。數(shù)據(jù)倉庫是一個(gè)比較全的概念,通常不是指一類技術(shù),是所有數(shù)據(jù)的組合,會(huì)是所有數(shù)據(jù)的集散地,企業(yè)會(huì)把所有的數(shù)據(jù)放在數(shù)據(jù)倉庫里面對(duì)外提供服務(wù)。過去這么多年數(shù)據(jù)庫面臨一些挑戰(zhàn),數(shù)據(jù)增加比較快,傳統(tǒng)的數(shù)據(jù)庫已經(jīng)不能處理,效率提升得比較慢,我們碰到一個(gè)很大的客戶,是一個(gè)著名的廠商,這是一個(gè)顯著的瓶頸。原來的關(guān)鍵數(shù)據(jù)庫只處理結(jié)構(gòu)化處理,現(xiàn)在需要一些新的技術(shù)處理半結(jié)構(gòu)化、非結(jié)構(gòu)化的數(shù)據(jù)。隨著數(shù)據(jù)倉庫越來越多,用戶也越來越多,通常用戶有上百個(gè)數(shù)據(jù)源,上面支撐幾十個(gè)業(yè)務(wù)部門,甚至是幾十個(gè)分支機(jī)構(gòu),一個(gè)銀行可能有30幾家分行,這些分支機(jī)構(gòu)訪問數(shù)據(jù)的時(shí)候都通過這個(gè)數(shù)據(jù)倉庫,對(duì)數(shù)據(jù)的隔離、訪問資源的管理就變成了一個(gè)迫切要解決的問題。
傳統(tǒng)數(shù)據(jù)倉庫是T+1的,在當(dāng)天分析前一天的數(shù)據(jù),但是更多的企業(yè)希望能夠?qū)?shù)據(jù)進(jìn)行實(shí)時(shí)分析,希望能夠做到T+0,這一塊也是對(duì)數(shù)據(jù)倉庫構(gòu)成的一個(gè)挑戰(zhàn)。這一塊就是有一些國外的咨詢機(jī)構(gòu)和公司提出的,希望能夠做實(shí)時(shí)的數(shù)據(jù)處理。剛才我們看到有一個(gè)概念是幾年前提出來的邏輯數(shù)據(jù)倉庫,能夠處理多種數(shù)據(jù)源,做數(shù)據(jù)管理。還有一個(gè)特點(diǎn)也是現(xiàn)在大家在使用新技術(shù)的時(shí)候一個(gè)驅(qū)動(dòng)力,原來是對(duì)于過去歷史的統(tǒng)計(jì)。今天大家發(fā)現(xiàn),以前做數(shù)據(jù)模型,比如說像銀行里的十大主題模型,或者八大主題模型,他們有幾千張表,中間的表可能有上萬張,關(guān)系相對(duì)來說是固定的。一旦你的業(yè)務(wù)發(fā)生變化,你可能要對(duì)整個(gè)層面做修改。今天大家希望有一個(gè)自助的方法,能夠用機(jī)器學(xué)習(xí)的方法發(fā)現(xiàn)數(shù)據(jù)的管理,而不是發(fā)現(xiàn)統(tǒng)計(jì)的結(jié)果,甚至是統(tǒng)計(jì)報(bào)告對(duì)于他們不夠。所以這一塊現(xiàn)在有的提出來一個(gè)設(shè)計(jì)模式,就是我不需要知道這些數(shù)據(jù)它們之間的關(guān)聯(lián)關(guān)系,我是通過機(jī)器學(xué)習(xí)的方法,機(jī)器自動(dòng)來學(xué)習(xí)發(fā)現(xiàn)他們的規(guī)律。這實(shí)際上也對(duì)應(yīng)了大數(shù)據(jù)的4V,數(shù)據(jù)量、數(shù)據(jù)變化、數(shù)據(jù)實(shí)時(shí)性以及數(shù)據(jù)挖掘,剛好是4V。其實(shí)在數(shù)據(jù)倉庫里面,其實(shí)也是沿著這個(gè)方向演變出來的四個(gè)不同的設(shè)計(jì)模式。
在解決數(shù)量大的問題上面大家已經(jīng)形成了共識(shí),需要用分布式的方法,用橫向的方式。從早期的單機(jī)到90年代的并行數(shù)據(jù)庫,是把數(shù)據(jù)庫的引擎并行化了,把計(jì)算并行化了,但是存儲(chǔ)仍然是集中化的,集中化的存儲(chǔ)仍然是一個(gè)瓶頸。后來把計(jì)算分離了,但是計(jì)算的引擎不具有可擴(kuò)展性,容錯(cuò)性比較差。到了Hadoop的時(shí)候,大家發(fā)現(xiàn)可以有一種因的模式,同時(shí)對(duì)數(shù)據(jù)和計(jì)算進(jìn)行分布式計(jì)算,對(duì)于數(shù)據(jù)進(jìn)行分布式存儲(chǔ),同時(shí)兼顧擴(kuò)展性和容錯(cuò)性。這一塊基本上大家發(fā)現(xiàn),這個(gè)計(jì)算模式是處理大規(guī)模數(shù)據(jù)的一個(gè)最佳模式,這個(gè)擴(kuò)展性和容錯(cuò)性都有很大的問題。所以很多的Hadoop引擎都回歸到這個(gè)計(jì)算模式上來。我們?cè)赟QL這一塊做的比較突出,能夠跑完整個(gè)過程?,F(xiàn)在我們最新發(fā)布的4.0版本性能又比這個(gè)有兩倍的提升,所以現(xiàn)在除了100TB的用三臺(tái)機(jī)器,其他的都可以用兩臺(tái)機(jī)器完成。
分布式計(jì)算是解決了性能的問題,那么怎么解決數(shù)據(jù)源的問題,怎么解決這個(gè)問題,我們提出了邏輯數(shù)據(jù)倉庫的概念。邏輯數(shù)據(jù)倉庫要滿足三個(gè)特性,首先需要有一個(gè)集中化的存儲(chǔ),把所有的數(shù)據(jù)全部集中起來,而不是分散在不同的地方。另外需要有一個(gè)數(shù)據(jù)聯(lián)邦的概念,能夠跨多種數(shù)據(jù)源,能夠有統(tǒng)一的接口。通過統(tǒng)一的SQL層,或者是一個(gè)界面能夠來訪問到所有的數(shù)據(jù)源,中間有結(jié)構(gòu)化數(shù)據(jù),還有非結(jié)構(gòu)化數(shù)據(jù)。另外必然是需要一個(gè)分布式計(jì)算,同時(shí)上面有多租戶管理,還有原數(shù)據(jù)管理,整個(gè)形成了一個(gè)邏輯數(shù)據(jù)倉庫的概念。邏輯數(shù)據(jù)倉庫其中一個(gè)非常重要的特性就是要做數(shù)據(jù)聯(lián)邦,能夠訪問多種不同的數(shù)據(jù)源。這一塊我們有一個(gè)比較好的產(chǎn)品,可以跨多種數(shù)據(jù)源進(jìn)行交叉。
在邏輯數(shù)據(jù)倉庫當(dāng)中需要用資源管理,要實(shí)現(xiàn)兩層,數(shù)據(jù)保護(hù)通過不同的訪問規(guī)則來控制對(duì)數(shù)據(jù)的不同訪問,其次我們需要對(duì)資源進(jìn)行一個(gè)比較好的隔離。這一塊我們現(xiàn)在也采用了一些嘗試,我們現(xiàn)在發(fā)布了一個(gè)產(chǎn)品是TOS,我們的調(diào)動(dòng)引擎是完全自己開發(fā)的。另外一個(gè)題外話,我們?cè)诿髂甑漠a(chǎn)品當(dāng)中有自己的存儲(chǔ)引擎,所以在未來的一段時(shí)間之內(nèi),大家看不到Hadoop的影子了,我們已經(jīng)幾乎把這個(gè)東西全部實(shí)現(xiàn)了。