關(guān)于大數據和云計算的關(guān)系人們通常會(huì )有誤解。而且也會(huì )把它們混起來(lái)說(shuō),分別做一句話(huà)直白解釋就是:云計算就是硬件資源的虛擬化;大數據就是海量數據的高效處理。
雖然上面的一句話(huà)解釋不是非常的貼切,但是可以幫助你簡(jiǎn)單的理解二者的區別。另外,如果做一個(gè)更形象的解釋?zhuān)朴嬎阆喈斢谖覀兊挠嬎銠C和操作系統,將大量的硬件資源虛擬化之后再進(jìn)行分配使用,在云計算領(lǐng)域目前的老大應該算是amazon,可以說(shuō)為云計算提供了商業(yè)化的標準,另外值得關(guān)注的還有vmware(其實(shí)從這一點(diǎn)可以幫助你理解云計算和虛擬化的關(guān)系),開(kāi)源的云平臺最有活力的就是openstack了;
大數據相當于海量數據的“數據庫”,而且通觀(guān)大數據領(lǐng)域的發(fā)展也能看出,當前的大數據處理一直在向著(zhù)近似于傳統數據庫體驗的方向發(fā)展,hadoop的產(chǎn)生使我們能夠用普通機器建立穩定的處理tb級數據的集群,把傳統而昂貴的并行計算等概念一下就拉到了我們的面前,但是其不適合數據分析人員使用(因為mapreduce開(kāi)發(fā)復雜),所以piglatin和hive出現了(分別是yahoo!和facebook發(fā)起的項目,說(shuō)到這補充一下,在大數據領(lǐng)域google、facebook、twitter等前沿的互聯(lián)網(wǎng)公司作出了很積極和強大的貢獻),為我們帶來(lái)了類(lèi)sql的操作,到這里操作方式像sql了,但是處理效率很慢,絕對和傳統的數據庫的處理效率有天壤之別,所以人們又在想怎樣在大數據處理上不只是操作方式類(lèi)sql,而處理速度也能“類(lèi)sql”,google為我們帶來(lái)了dremel/powerdrill等技術(shù),cloudera(hadoop商業(yè)化最強的公司,hadoop之父cutting就在這里負責技術(shù)領(lǐng)導)的impala也出現了。
整體來(lái)看,未來(lái)的趨勢是,云計算作為計算資源的底層,支撐著(zhù)上層的大數據處理,而大數據的發(fā)展趨勢是,實(shí)時(shí)交互式的查詢(xún)效率和分析能力,借用google一篇技術(shù)論文中的話(huà),“動(dòng)一下鼠標就可以在秒級操作pb級別的數據”難道不讓人興奮嗎?
在談大數據的時(shí)候,首先談到的就是大數據的4v特性,即類(lèi)型復雜,海量,快速和價(jià)值。ibm原來(lái)談大數據的時(shí)候談3v,沒(méi)有價(jià)值這個(gè)v。而實(shí)際我們來(lái)看4v更加恰當,價(jià)值才是大數據問(wèn)題解決的最終目標,其它3v都是為價(jià)值目標服務(wù)。在有了4v的概念后,就很容易簡(jiǎn)化的來(lái)理解大數據的核心,即大數據的總體架構包括三層,數據存儲,數據處理和數據分析。類(lèi)型復雜和海量由數據存儲層解決,快速和時(shí)效性要求由數據處理層解決,價(jià)值由數據分析層解決。
數據先要通過(guò)存儲層存儲下來(lái),然后根據數據需求和目標來(lái)建立相應的數據模型和數據分析指標體系對數據進(jìn)行分析產(chǎn)生價(jià)值。而中間的時(shí)效性又通過(guò)中間數據處理層提供的強大的并行計算和分布式計算能力來(lái)完成。三層相互配合,讓大數據最終產(chǎn)生價(jià)值。
數據存儲層
數據有很多分法,有結構化,半結構化,非結構化;也有元數據,主數據,業(yè)務(wù)數據;還可以分為gis,視頻,文件,語(yǔ)音,業(yè)務(wù)交易類(lèi)各種數據。傳統的結構化數據庫已經(jīng)無(wú)法滿(mǎn)足數據多樣性的存儲要求,因此在rdbms基礎上增加了兩種類(lèi)型,一種是hdfs可以直接應用于非結構化文件存儲,一種是nosql類(lèi)數據庫,可以應用于結構化和半結構化數據存儲。
從存儲層的搭建來(lái)說(shuō),關(guān)系型數據庫,nosql數據庫和hdfs分布式文件系統三種存儲方式都需要。業(yè)務(wù)應用根據實(shí)際的情況選擇不同的存儲模式,但是為了業(yè)務(wù)的存儲和讀取方便性,我們可以對存儲層進(jìn)一步的封裝,形成一個(gè)統一的共享存儲服務(wù)層,簡(jiǎn)化這種操作。從用戶(hù)來(lái)講并不關(guān)心底層存儲細節,只關(guān)心數據的存儲和讀取的方便性,通過(guò)共享數據存儲層可以實(shí)現在存儲上的應用和存儲基礎設置的徹底解耦。
數據處理層
數據處理層核心解決問(wèn)題在于數據存儲出現分布式后帶來(lái)的數據處理上的復雜度,海量存儲后帶來(lái)了數據處理上的時(shí)效性要求,這些都是數據處理層要解決的問(wèn)題。
在傳統的云相關(guān)技術(shù)架構上,可以將hive,pig和hadoop-mapreduce框架相關(guān)的技術(shù)內容全部劃入到數據處理層的能力。原來(lái)我思考的是將hive劃入到數據分析層能力不合適,因為hive重點(diǎn)還是在真正處理下的復雜查詢(xún)的拆分,查詢(xún)結果的重新聚合,而mapreduce本身又實(shí)現真正的分布式處理能力。
mapreduce只是實(shí)現了一個(gè)分布式計算的框架和邏輯,而真正的分析需求的拆分,分析結果的匯總和合并還是需要hive層的能力整合。最終的目的很簡(jiǎn)單,即支持分布式架構下的時(shí)效性要求。
數據分析層
最后回到分析層,分析層重點(diǎn)是真正挖掘大數據的價(jià)值所在,而價(jià)值的挖掘核心又在于數據分析和挖掘。那么數據分析層核心仍然在于傳統的bi分析的內容。包括數據的維度分析,數據的切片,數據的上鉆和下鉆,cube等。
數據分析我只關(guān)注兩個(gè)內容,一個(gè)就是傳統數據倉庫下的數據建模,在該數據模型下需要支持上面各種分析方法和分析策略;其次是根據業(yè)務(wù)目標和業(yè)務(wù)需求建立的kpi指標體系,對應指標體系的分析模型和分析方法。解決這兩個(gè)問(wèn)題基本解決數據分析的問(wèn)題。
傳統的bi分析通過(guò)大量的etl數據抽取和集中化,形成一個(gè)完整的數據倉庫,而基于大數據的bi分析,可能并沒(méi)有一個(gè)集中化的數據倉庫,或者將數據倉庫本身也是分布式的了,bi分析的基本方法和思路并沒(méi)有變化,但是落地到執行的數據存儲和數據處理方法卻發(fā)生了大變化。
談了這么多,核心還是想說(shuō)明大數據兩大核心為云技術(shù)和bi,離開(kāi)云技術(shù)大數據沒(méi)有根基和落地可能,離開(kāi)bi和價(jià)值,大數據又變化為舍本逐末,丟棄關(guān)鍵目標。簡(jiǎn)單總結就是大數據目標驅動(dòng)是bi,大數據實(shí)施落地式云技術(shù)。