大資料與雲端計算

關於大資料和雲端計算的關係人們通常會有誤解。而且也會把它們混起來說,分別做一句話直白解釋就是:雲端計算就是硬體資源的虛擬化;大資料就是海量資料的高效處理。

雖然上面的一句話解釋不是非常的貼切,但是可以幫助你簡單的理解二者的區別。另外,如果做一個更形象的解釋,雲端計算相當於我們的計算機和作業系統,將大量的硬體資源虛擬化之後再進行分配使用,在雲端計算領域目前的老大應該算是Amazon,可以說為雲端計算提供了商業化的標準,另外值得關注的還有VMware(其實從這一點可以幫助你理解雲端計算和虛擬化的關係),開源的雲平臺最有活力的就是Openstack了;

大資料相當於海量資料的“資料庫”,而且通觀大資料領域的發展也能看出,當前的大資料處理一直在向著近似於傳統資料庫體驗的方向發展,Hadoop的產生使我們能夠用普通機器建立穩定的處理TB級資料的叢集,把傳統而昂貴的平行計算等概念一下就拉到了我們的面前,但是其不適合資料分析人員使用(因為MapReduce開發複雜),所以PigLatin和Hive出現了(分別是Yahoo!和facebook發起的專案,說到這補充一下,在大資料領域Google、facebook、twitter等前沿的網際網路公司作出了很積極和強大的貢獻),為我們帶來了類SQL的操作,到這裡操作方式像SQL了,但是處理效率很慢,絕對和傳統的資料庫的處理效率有天壤之別,所以人們又在想怎樣在大資料處理上不只是操作方式類SQL,而處理速度也能“類SQL”,Google為我們帶來了Dremel/PowerDrill等技術,Cloudera(Hadoop商業化最強的公司,Hadoop之父cutting就在這裡負責技術領導)的Impala也出現了。

整體來看,未來的趨勢是,雲端計算作為計算資源的底層,支撐著上層的大資料處理,而大資料的發展趨勢是,實時互動式的查詢效率和分析能力,借用Google一篇技術論文中的話,“動一下滑鼠就可以在秒級操作PB級別的資料”難道不讓人興奮嗎?

在談大資料的時候,首先談到的就是大資料的4V特性,即型別複雜,海量,快速和價值。IBM原來談大資料的時候談3V,沒有價值這個V。而實際我們來看4V更加恰當,價值才是大資料問題解決的最終目標,其它3V都是為價值目標服務。在有了4V的概念後,就很容易簡化的來理解大資料的核心,即大資料的總體架構包括三層,資料儲存,資料處理和資料分析。型別複雜和海量由資料儲存層解決,快速和時效性要求由資料處理層解決,價值由資料分析層解決。

資料先要通過儲存層儲存下來,然後根據資料需求和目標來建立相應的資料模型和資料分析指標體系對資料進行分析產生價值。而中間的時效性又通過中間資料處理層提供的強大的平行計算和分散式計算能力來完成。三層相互配合,讓大資料最終產生價值。

資料儲存層

資料有很多分法,有結構化,半結構化,非結構化;也有後設資料,主資料,業務資料;還可以分為GIS,視訊,檔案,語音,業務交易類各種資料。傳統的結構化資料庫已經無法滿足資料多樣性的儲存要求,因此在RDBMS基礎上增加了兩種型別,一種是hdfs可以直接應用於非結構化檔案儲存,一種是nosql類資料庫,可以應用於結構化和半結構化資料儲存。

從儲存層的搭建來說,關係型資料庫,NoSQL資料庫和hdfs分散式檔案系統三種儲存方式都需要。業務應用根據實際的情況選擇不同的儲存模式,但是為了業務的儲存和讀取方便性,我們可以對儲存層進一步的封裝,形成一個統一的共享儲存服務層,簡化這種操作。從使用者來講並不關心底層儲存細節,只關心資料的儲存和讀取的方便性,通過共享資料儲存層可以實現在儲存上的應用和儲存基礎設定的徹底解耦。

資料處理層

資料處理層核心解決問題在於資料儲存出現分散式後帶來的資料處理上的複雜度,海量儲存後帶來了資料處理上的時效性要求,這些都是資料處理層要解決的問題。

在傳統的雲相關技術架構上,可以將hive,pig和hadoop-mapreduce框架相關的技術內容全部劃入到資料處理層的能力。原來我思考的是將hive劃入到資料分析層能力不合適,因為hive重點還是在真正處理下的複雜查詢的拆分,查詢結果的重新聚合,而mapreduce本身又實現真正的分散式處理能力。

mapreduce只是實現了一個分散式計算的框架和邏輯,而真正的分析需求的拆分,分析結果的彙總和合並還是需要hive層的能力整合。最終的目的很簡單,即支援分散式架構下的時效性要求。

資料分析層

最後回到分析層,分析層重點是真正挖掘大資料的價值所在,而價值的挖掘核心又在於資料分析和挖掘。那麼資料分析層核心仍然在於傳統的BI分析的內容。包括資料的維度分析,資料的切片,資料的上鑽和下鑽,cube等。

資料分析我只關注兩個內容,一個就是傳統資料倉儲下的資料建模,在該資料模型下需要支援上面各種分析方法和分析策略;其次是根據業務目標和業務需求建立的KPI指標體系,對應指標體系的分析模型和分析方法。解決這兩個問題基本解決資料分析的問題。

傳統的BI分析通過大量的ETL資料抽取和集中化,形成一個完整的資料倉儲,而基於大資料的BI分析,可能並沒有一個集中化的資料倉儲,或者將資料倉儲本身也是分散式的了,BI分析的基本方法和思路並沒有變化,但是落地到執行的資料儲存和資料處理方法卻發生了大變化。

談了這麼多,核心還是想說明大資料兩大核心為雲技術和BI,離開雲技術大資料沒有根基和落地可能,離開BI和價值,大資料又變化為捨本逐末,丟棄關鍵目標。簡單總結就是大資料目標驅動是BI,大資料實施落地式雲技術。

自:36大資料