大數據之惑

算起來,接觸大數據、和互聯網之外的客戶談大數據也有快2年了。也該是時候整理下一些感受,和大家分享下我看到的國內大數據應用的一些困惑了。

雲和大數據,應該是近幾年IT炒的最熱的兩個話題了。在我看來,這兩者之間的不同就是:雲是做新的瓶,裝舊的酒; 大數據是找合適的瓶,釀新的酒。

雲說到底是一種基礎架構的革命。原先用物理服務器的應用,在雲中變成以各種虛擬服務器的形式交付出去,從而計算、存儲、網絡資源都能被更有效率的利用了。於是,酒量好無酒不歡的人就可以用個海碗牛飲二鍋頭;酒量小又想嚐嚐微醺小醉風情的人也可以端個小杯咂巴咂巴女兒紅。

大數據的不同在於,它其實是把以前人們丟棄不理的數據都撿起來,加以重新分析利用,使之產生新價值的技術。換句話說,原先20斤的糧食只能出2斤的酒糟,現在20斤的糧食都變成或者大部分變成酒糟。當然這酒糟肯定會和原先的酒糟有不一樣,所以釀出來的酒肯定和以前不同,喝酒、裝酒、儲存酒的方法自然也不同。

所以,相對於雲,人們對大數據使用的困惑更大。接下來談談我所看到的幾類最多的困惑,以及我們目前存在哪些問題。

困惑之一:大數據能幹什麼?

換用前面飲酒來作比方,這新釀出來的酒怎麼喝纔可以喝得痛快。這裏不再想討論到底哪些數據是大數據了。 下面這張圖是Gartner 對各行業對於大數據需求的調查,該統計針對大數據通用的3個V , 以及未被利用數據的需求情況做了分類。 可見幾乎所有行業都對大數據有着各種各樣的需求。

5192fff88eff7.jpg圖片來自Gartner

爲什麼有這些需求,是因爲以前這些類型的數據都因爲技術和成本的原因,用戶沒有收集處理。現在有了性價比合理的手段可以讓你收集處理這些數據,怎麼可能說不要?還是以釀酒做比喻,以前釀兩斤酒糟要浪費18斤的糧食,現在至少20斤糧食可以有10斤都變成酒糟了,雖然這些酒糟可能和以前不大一樣,但至少可以少浪費8斤糧食呢。
現在問題來了,酒糟多了,種類不一樣了,怎麼根據新的酒糟釀酒呢?對不起,這個問題酒作坊就要別人來教了。但問題是,所有酒坊現在可能都面臨這同一個問題,於是就沒人可以教你了,只能自己慢慢摸索。這個就是現在各行業面對大數據的最大困惑 --- 海量的數據收集上來不知道怎麼用!


這裏不妨看看爲什麼傳統的數據倉庫領域沒有這樣的困惑。如下這張圖很好的說明了傳統和現在的區別:



5193032d63471.jpg圖片來自Sogeti

從上圖展示的流程可以看出產生困惑的根本原因是:苦逼的IT從業人員走在了業務決策者的前面 (流淚) 。傳統時代,都是業務人員希望得到某類型的統計報表或者分析預測,於是IT行業人員爲了滿足他們的需求找方案、寫算法,從而催生出了各種類型的數據倉庫和解決方案。而現在,在互聯網的推動下,IT人員發覺原來我們可以通過一些新的方式存儲海量的原先無法處理的數據,但業務人員卻沒有準備好。所以,當你告訴他們:“嘿,哥們兒,我這裏現在又有了很多數據可以幫你了。”他們一頭霧水不知道這些數據對他們有什麼用了。

怎麼解決這個問題?先來看傳統廠商Oracle、IBM他們是怎麼做的。方式細節略有不同,但他們的思路基本如下:



5193041af05f4.jpg圖片來自HP首席技術專家 Greg Battas在ABDS2012大會上的 分享

簡單來說,這種處理方式是把Hadoop和其它各類NewSQL、NoSQL方案以ETL,或外部表的方式引入現有的數據分析解決方案架構中。這種方案因爲上層的數據倉庫沒有大的改變,客戶可以繼續使用原先的算法和報表結構,即在新的數據平臺上繼續沿用舊的應用場景和分析方法。好處是由於引入了大數據技術,可以處理多種數據源,同時降低原先海量數據ETL的成本。但這種方法依然存在不少問題:

問題一:性能瓶頸依然存在。縱觀現在各類NewSQL、NoSQL方案,分佈式是一個最顯著的特色。之所以大家都採用分佈式架構,就是因爲傳統的縱向擴展方案,在處理海量數據時候性能沒法隨着數據量的增長而線性擴展,或者成本代價太高。而上圖的方案,雖然通過Hadoop解決了ETL的性能瓶頸問題,但BI還是傳統的數據倉庫,海量的ETL使得原有數據倉庫需要處理的數據量大增,所以必須花很大代價再次升級原有的數據倉庫,否則分析就會跑的比原先還慢。因此,用戶依然需要升級價格不菲的上層數據倉庫,向原先效率一般的算法妥協性能。

問題二:大數據投資被浪費。舊的分析應用場景,算法是基於關係型數據庫的。和大數據方案的邏輯模式有很大的不同,這不同主要有兩類。
沙裏淘金和打磨玉石的區別。我舉過辣子雞的例子來形容Hadoop,大致是說一盤辣子雞就是大數據,Hadoop就是辣子雞裏剔除尖椒,找出能吃的雞塊的方法。其實,大數據的處理就是幫你淘金的過程。以前沒有那麼合適的“篩子”,所以只能放棄在沙子裏淘金的夢想,現在有了合適的“篩子”,就可以去從沙灘上比較高效快速的找出那些“閃光”的東西了。而傳統的數據處理方式,其實已經通過人工、半人工的方式,把很多篩撿工作做了。所以雖然丟棄了大量的數據,但是保留下的數據已經是塊“璞玉”了,要做的只是對這塊“璞玉”再精雕細啄,使其成爲價值連成的“美玉”。 所以,用傳統的數據處理方法來處理大數據,就是拿美工刀去宰一頭牛,即使有人幫你端盤子分部位,還沒殺死牛人就累死。

動車組和火車的區別。分佈式的大數據架構,其核心思想和三灣改編時的核心思想是一樣的:把支部建到連隊中去。把黨的有生力量分佈到各個戰鬥單元中,大大提高中央戰略的貫徹執行,提高各個戰鬥單位的機動性和戰鬥力。就是動車爲什麼比火車開得快的道理:每節車廂都有動力,雖然每節都不比火車頭強勁,但車廂越多就跑的越快。而火車頭再強勁,也有拖不動更多車廂的時候。現有的分析算法,很多時候都是針對“火車頭”類型的,很多時候沒辦法拆分成很多小的運算分佈到每個節點上。於是,如果沿用之前的算法,那麼就必須增加額外的軟件方案把已經分佈出去了的數據再“集中”起來,額外增加的環節,肯定費時費力,效果不可能會好。


在我看來,前面提到的傳統廠商解決企業大數據應用困惑的方案不是最好的方案。什麼是最好的方案呢?其實很簡單,就是針對新的數據集和數據庫結構特點開發新的應用分析場景,並把這些分析應用場景直接跑到大數據架構上。而不是去削足適履,拿新的NewSQL、NoSQL嫁接傳統方案。
這麼做的好處不言而喻,關鍵是如何實現?這些事不能由搞IT的人來告訴業務人員,得讓業務人員來告訴我們!大數據應用要真正在企業裏生根開花,真的需要一些數據科學家做需求生成(Demand Generation)的工作。我們要通過他們的幫助,使這張圖裏的大數據路徑翻轉過來,像傳統數據處理一樣,由業務人員告訴我們,他們想做什麼!


我接觸過很多客戶,去之前得到的需求都是:希望瞭解Hadoop或者內存數據庫。但是去了之後都發覺,他們其實不知道Hadoop或者內存數據庫可以幫他們達到哪些目的,希望我們可以告訴他們。但很坦率的說,這個不是我們這些搞IT基礎架構的人該做的事情。我們已經“超前”的儲備好了這類技術手段了,怎麼用這類技術真的是應該懂業務的人去想,而不是我們了。

所以,在這裏我想呼籲IT行業裏,處在金字塔頂的專業諮詢師、數據分析人員、數據科學家們,現在是時候走出原先的框架看看新技術新架構下有些新商機了。不要總是桎梏於傳統的思路和方法,讓新的大數據思想來做“削足適履”的事情了。真心希望你們可以利用專業知識和行業經驗,幫着那些”求大數據若渴“的行業用戶們好好定位下對他們真正有價值的新應用場景,設計更多的有意義的分佈式算法和機器學習模型,真正幫助他們解決大數據應用之惑。

困惑之二:不同的大數據方案之間有什麼不一樣,我該用哪些?

首先,客戶必須把前一個問題想清楚,明確自己要做什麼事,實現什麼功能。然後,我們就可以把這個需求分解成小的需求:
要處理幾種數據類型?
要處理多大的數據量?
要處理的多快?

這三個要求有比較明確答案之後。這張圖表以數據處理的時效性和數據量爲兩個維度,把傳統的RDBMS和Hadoop、MPP、內存數據庫等各類大數據方案做分類。這個分類針對的還是各種類別裏比較典型的方案。現在實際情況,特別是MPP和Hadoop,各個發行版的特色功能都不盡相同,所以處理的場景也會各有不同方向的延伸。

大數據時代,一種架構包打天下的局面是不大可能出現的。未來的企業大數據整體方案,肯定是多種數據庫方案結構並存的。企業數據在各個不同方案架構之間可以聯合互通,根據分析場景的不同分析工具運作在不同的數據庫架構上。


519306a5445d5.jpg圖片來自 Nomura Research Institute

既然未來企業裏面肯定會有多種數據源,多種數據庫結構,那麼是否可以建立一箇中間的數據服務層,把應用和底層數據庫架構隔離開呢?就好像你趕着上班,沒時間買菜,於是就寫個菜單交給鐘點工,給他錢讓他幫你買。你不用管她到底會去路邊菜市場買還是超市買。這個想法看起來很美好,但我覺得在企業裏實行的難度比較大,不是很現實。爲什麼這麼說?這裏只是說說我的一些看法。

看看對大數據應用最純熟的互聯網,他們的方式就是:簡潔,直接。什麼樣的數據,用哪種方式存儲效率最高,處理起來最快就用哪種方式。能直接在文件系統上做的就不放到數據庫裏。數據的分析也是如此,結構層次越少越好,數據訪問越直接越好,能用編程語言直接解決的問題就堅決不採用數據倉庫用SQL。該用SQL解決的問題也不去爲了統一接口而再去跑一遍Java或Python。一切以高效直接爲前提,充分貫徹“把支部建到連隊裏”的核心思想,發揮小快靈的優勢。以Hadoop舉例,很多互聯網或者發行版都開始嘗試放棄Map/Reduce直接對HDFS進行操作處理,其思想就是想更直接,更簡潔。所以,前面所述的“建立一個數據服務層”還是傳統企業的舊思路老方法,希望通過建立中間層減少開發移植難度,其實結果就是發揮不出大數據架構本身的性能和規模優勢,限制住了技術架構本身的發展空間。之所以提這個話題,主要是想引出下一個行業對於大數據的困惑。

困惑之三:我們應該怎樣從傳統的關係型數據架構向大數據架構遷移。

這個問題,我覺得沒有人可以給出完美的答案,因爲現在的一些新企業,比如互聯網,面對的就是混合數據大數據的環境,不存在遷移的問題。而且他們要處理的數據類型,應用場景也和傳統企業不一樣,只有一定的借鑑意義,完全複製是不明智的。傳統的大型企業,現在國外大多數的企業自己在摸着石頭過河,國內企業剛開個頭。其實大家都在摸索過程中,前方基本沒有指路的明燈,只有一點點星星之火可供參考。

誰能幫你呢?我覺得還是那些搞企業諮詢的人士。至少他們可以看到很多國外類似企業的成功或者失敗案例。但前提是他們真正站在中立的立場幫你從新的應用場景着手分析規劃。

關於這個問題,我也分享個人的觀點,僅供參考。

第一步:先把大數據存起來,用起來。現在看過很多傳統企業請各類諮詢人士做的大數據戰略規劃,我沒資格評價這些規劃的可行性和問題所在,但我覺得對於接受新生事物,首先要做的就是先嚐個鮮,而不是知道它的未來會怎樣。如果小試牛刀的結果不好,那麼調整重頭再來的成本也比較小。所以我的建議,首先找個方案,把你準備分析處理的數據用新的辦法存起來,然後再試着在上面做些簡單的查詢,比較之類的應用,看看效果好不好,領導買不買單。如果效果好了,那麼再試着在這上面實現新的業務應用場景,解決一部分業務人員的某些實際需求;效果好的話再試着做第二個應用,第三個分析。。。。。。慢慢的讓越來越多人看到這些新數據新應用的價值。

第二步:考慮新的大數據平臺和原有數據平臺的互通,聯合問題。這裏有兩個方面:
把舊的應用分析運行在新的大數據平臺上。把數據從原先的RDBMS數據源抽取到新的大數據平臺上,利用新的大數據分析方法實現傳統的業務分析邏輯。這麼做有可能會分析更多的數據產生更好的分析結果,也有可能會發現效率還不如原先的RDBMS方案。

把大數據平臺上的數據抽取到舊有數據倉庫中分析展現。這個方向主要還是爲了保證舊有用戶的SQL使用習慣,區別是抽入舊數據倉庫的不是外部表,而是經過清洗整理的有價值的數據。

通過這兩個方面的嘗試,基本就可以把哪些應用可以遷移,哪些不可以遷移搞清楚了。爲下一步打下紮實的基礎。

第三步:數據源整合,分析應用場景定製。 有了前兩步的基礎,基本你就可以很清楚你能夠處理哪些類型的數據,以及他們會爲你帶來哪些業務價值了。接下來就可以發動“總攻”了。

總攻第一步,就是整合數據源,把將會涉及到的各類型數據分類,用各自最合適的方法儲存起來整理好。然後,把應用、展現工具根據所涉及數據源的不同,應用場景的差異,和不同的數據存儲架構做耦合,定製化應用場景,使每個應用都可以充分利用到底層架構的性能和擴展能力。對於需要跨數據源的應用場景,選定中間處理層方案,保證中間處理層方案的定製化,不會因其存在影響底層架構的性能和上層分析應用的實現。

這樣的步驟,沒辦法一下子讓企業領導看到“未來10年以後的IT架構宏偉藍圖”,但可操作性比較強,而且一步不對修改調整的機會也比較大。這種思路屬於互聯網和新興行業那種“小步快跑”的思維模式,先走幾步看看,如果不行也有了寶貴的經驗教訓,花的代價也不算很大。

大致上來說,我所能感受到的,行業用戶對於大數據的困惑就是以上所說的三個方面。之所以會有這些困惑,歸根結底還是因爲大數據的處理方式和以前的傳統方式太不同了。

以Hadoop爲代表的大數據處理體系,其實是採取了一種粗放的方式處理海量的數據,機器學習的原理很多時候也是依靠大量的樣本而不是精確的邏輯。舉個例子,我們常說的“清明時節雨紛紛”,根本沒有邏輯和科學公式去推導出這個結論。之所以會有這個結論,是無數勞動人民通過多年觀察,從“海量的”清明氣候樣本中發現,每到這幾天總是下雨比較多。而爲什麼清明這幾天會下雨,卻沒有人去仔細分析。大數據的處理方式類似,它依託前人留下的經驗,歷史數據,歸納總結,而不是去依賴一些複雜的公式演算。其所依仗的,就是“樣本”多,而且能夠通過技術手段快速高效的分析整理海量的樣本。而之前因爲沒辦法處理這麼多樣本,只能靠先進高精尖的數學模型。所以,想用好大數據,一是要調整思路,儘量用簡單的方式去處理大量的數據;二是在某些情況下可能需要考慮通過多采樣等方式把數據“變大”。

所以,企業要想用好大數據,在沙海里淘金,就應該大膽的拋棄掉原有的一套成熟的架構和方案。從零開始,真正的去思考這麼多數據,這些個新方法對於企業能夠有什麼意義,產生什麼價值。然後,就是把想法一個個在Hadoop,MPP等等架構上實現,落地,一旦發覺有問題了就馬上調整,從頭再來。而不是先像以前那樣看看別的人都怎麼做,然後做幾十頁“看上去很美“的PPT,畫一個”未來十年“的美麗的大餅了事。要多向互聯網和新興行業學習,改變思路,掛鉤業務,活在當下,小步快跑。(文/吳之晶 英特爾(中國)有限公司售前和合作伙伴支持部企業解決方案業務拓展經理 責編/包研)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章