任何一個時代或者模式的興起,都離不開與之相關(guān)的Killer App,比如,C/S時代的SAP ERP,互聯(lián)網(wǎng) 1.0 時代的門戶,以及互聯(lián)網(wǎng) 2.0時代的搜索和SNS等,那么在當(dāng)今云計算這個時代有那些Killer App呢?當(dāng)然首當(dāng)其沖的肯定是以VMware 和Amazon EC2為代表的虛擬化和相關(guān)IaaS服務(wù),除此之外,新近崛起的大數(shù)據(jù)絕對也是云計算的Killer App之一,并且不僅類似百度、阿里以及騰訊這樣的互聯(lián)網(wǎng)巨頭有相關(guān)的應(yīng)用需求,而且根據(jù)我個人平時與客戶接觸,發(fā)現(xiàn)有很多普通中小企業(yè),特別是中型的互聯(lián)網(wǎng)和物聯(lián)網(wǎng)企業(yè),在這方面的場景也有很多。本文將首先給大家介紹一下在我眼中的大數(shù)據(jù),以及大數(shù)據(jù)的意義和特點,再給大家聊聊大數(shù)據(jù)的常見處理流程,之后將會和大家分享一下我是如何幫助一些中小企業(yè)實施大數(shù)據(jù)相關(guān)的解決方案,也就是大數(shù)據(jù)如何從“小”做起。
什么是大數(shù)據(jù)?
過去計算機產(chǎn)生的數(shù)據(jù),較簡單,基本上都是一筆筆事務(wù),總量雖大,但是都是整體增長幅度都還是可控的,比如傳統(tǒng)的金融企業(yè),經(jīng)常使用幾臺大型機就管理其所有的業(yè)務(wù)數(shù)據(jù),而最近幾年,由于以平板、智能手機和傳感器為代表的智能設(shè)備越來越多,同時這些設(shè)備的生成的數(shù)據(jù)更是遠(yuǎn)遠(yuǎn)地超過我們的想象。據(jù)美國著名咨詢公司IDC的統(tǒng)計,全球數(shù)字信息在未來幾年將呈現(xiàn)驚人增長,預(yù)計到2020年總量將是現(xiàn)在的44倍。據(jù)另外一份數(shù)據(jù)顯示,全球 90% 的數(shù)據(jù)都是在過去兩年中生成的,并且每年以50%的速度進(jìn)行增長,每天,遍布世界各個角落的傳感器、移動設(shè)備、在線交易和社交網(wǎng)絡(luò)產(chǎn)生上PB級別的數(shù)據(jù);每個月,全球網(wǎng)友發(fā)布了 10多 億條 Twitter 信息和300多 億條 Facebook 信息。那么這些大數(shù)據(jù)的存在有什么價值和意義呢?
大數(shù)據(jù)的意義
我個人和一些朋友一直覺得大數(shù)據(jù)就好比一口油井,因為里面蘊含著非常豐富的價值,如果企業(yè)能有效利用其內(nèi)部存儲的海量數(shù)據(jù),那么將會改善其自身的產(chǎn)品和服務(wù),從而提升客戶和受眾的體驗,從而在大數(shù)據(jù)時代獲取競爭優(yōu)勢,并且隨著本身分析和挖掘技術(shù)不斷地提升,可以在之前的基礎(chǔ)上提供新的決策模式,從而支持管理者進(jìn)行快速和精確地決策,這樣能夠超越對手,搶占市場先機,獨領(lǐng)風(fēng)騷。
下面通過幾個行業(yè)來和大家舉例講解一下大數(shù)據(jù)有那些意義和作用?
互聯(lián)網(wǎng)企業(yè)
我們有一些客戶,他們主要是做網(wǎng)絡(luò)輿情或者網(wǎng)絡(luò)廣告,他們明天都會處理和收集TB級別日志或者網(wǎng)頁,結(jié)構(gòu)化和非結(jié)構(gòu)化都有,他們就是通過分析這些數(shù)據(jù)來給其客戶提供價值,比如分析一下一個男性護(hù)膚品廣告是在世界杯期間投放好,還是在亞洲杯那段時間播出好?還有,在電子商務(wù)方面,國外eBay的分析平臺每天處理的數(shù)據(jù)量高達(dá)100PB,超過了納斯達(dá)克交易所每天的數(shù)據(jù)處理量。為了準(zhǔn)確分析用戶的購物行為,eBay定義了超過500種類型的數(shù)據(jù),對顧客的行為進(jìn)行跟蹤分析,并且通過這些分析促進(jìn)eBay自身的業(yè)務(wù)創(chuàng)新和利潤增長。
智能電網(wǎng)
我們有一個合作伙伴,他們是做智能電網(wǎng)相關(guān)的解決方案。對那些電網(wǎng)而言,如果無法準(zhǔn)確預(yù)估實際電力的使用情況,將會使電網(wǎng)要求電廠發(fā)出過量的電力,雖然這些過量電力可以通過某種模式進(jìn)行保存,但是大量的電力浪費已不可避免。而通過他們智能電網(wǎng)的解決方案,每隔一刻鐘會采集一個省幾千萬用戶的用電數(shù)據(jù),之后他們會根據(jù)這些數(shù)據(jù)來精確分析用戶的用電模型,最后通過這個用電模型來優(yōu)化電力生產(chǎn),從而有效地減少電力資源的浪費。
車聯(lián)網(wǎng)
在車聯(lián)網(wǎng)方面,我們也有一個客戶,他們在一個城市有幾十萬臺基于Android的終端,而這些終端會每隔一段時間會發(fā)送具體位置的GPS消息給后端的數(shù)據(jù)集群,接著這些集群會分析一下這些海量的GPS信息,分析出那些路段在什么時候比較堵,之后將這些非常有價值的信息不斷地推送給客戶,從而幫助用戶減少在路上所消耗的時間。
醫(yī)療行業(yè)
在這個方面,大數(shù)據(jù)的用例有很多。首先,通過分析大量的病例信息,將有效地幫助醫(yī)生治?。黄浯危僭O(shè)在一個病人身體的多個節(jié)點加入探針設(shè)備,而且每個探針每天會采集GB級別關(guān)于人體細(xì)胞和血液運行狀態(tài)的數(shù)據(jù),之后計算集群可以根據(jù)這些數(shù)據(jù)來來進(jìn)行分析,這樣能更精確地判斷病因,從而讓醫(yī)生對病人進(jìn)行更具針對性地治療。
機器學(xué)習(xí)
在這方面,最出名的例子莫過于最近很火的Siri,它后臺有一個龐大的HBase集群來對類似語言這樣的文本數(shù)據(jù)進(jìn)行分析和管理,從而使Siri變成一位越來越老練的個人助手,為iPhone 4S的用戶提供了日期提醒、天氣預(yù)報和飯店建議等服務(wù)。除此之外,還有IBM的Watson,它通過一個基于Hadoop UIMA框架的集群來挖掘海量的文本信息來實現(xiàn)一定程度的人工智能,并在美國著名知識問答節(jié)目Jeopardy中戰(zhàn)勝多位出色的人類選手。
國家安全
這方面最出名的例子,莫過于美國的聯(lián)邦情報局(CIA)。在過去10年中,他們通過無人偵察機收集了大量阿富汗那邊地理相關(guān)的視頻資料,之后通過分析這些海量視頻資料,來對極具危害性的恐怖組織團(tuán)伙進(jìn)行定位。
#p#副標(biāo)題#e#
大數(shù)據(jù)的特點
大數(shù)據(jù),不僅有“大”這個特點,除此之外,它還有很多其他特色,在這方面,業(yè)界各個廠商都有自己獨特的見解,但是總體而言,我覺得可以用“4V+1C”來概括,“4V+1C分別代表了Variety(多樣化)、Volume(海量)、Velocity(快速)、Vitality(靈活)以及Complexity(復(fù)雜)這五個單詞。
Variety(多樣化)
大數(shù)據(jù)一般包括以事務(wù)為代表的結(jié)構(gòu)化數(shù)據(jù)、以網(wǎng)頁為代表的半結(jié)構(gòu)化數(shù)據(jù)和以視頻和語音信息為代表的非結(jié)構(gòu)化等多類數(shù)據(jù),并且它們處理和分析方式區(qū)別很大。
Volume(海量)
通過各種智能設(shè)備產(chǎn)生了大量的數(shù)據(jù),PB級別可謂是常態(tài),我接觸的一些客戶每天量都在幾十GB,幾百GB左右,我估計國內(nèi)大型互聯(lián)網(wǎng)企業(yè)的每天數(shù)據(jù)量已經(jīng)接近TB級別。
Velocity(快速)
要求快速處理,因為有些數(shù)據(jù)存在時效性,比如電商的數(shù)據(jù),假如今天數(shù)據(jù)的分析結(jié)果要等到明天才能得到,那么將會使電商很難做類似補貨這樣的決策,從而導(dǎo)致這些數(shù)據(jù)失去了分析的意義。
Vitality(靈活)
因為在互聯(lián)網(wǎng)時代,和以往相比,企業(yè)的業(yè)務(wù)需求更新的頻率加快了很多,那么相關(guān)大數(shù)據(jù)的分析和處理模型必須快速地適應(yīng)。
Complexity(復(fù)雜)
雖然傳統(tǒng)的BI已經(jīng)很復(fù)雜了,但是由于前面4個V的存在,使得針對大數(shù)據(jù)的處理和分析更艱巨,并且過去那套基于關(guān)系型數(shù)據(jù)庫的BI開始有點不合時宜了,同時也需要根據(jù)不同的業(yè)務(wù)場景,采取不同處理方式和工具。
大數(shù)據(jù)的常見處理流程
前面已經(jīng)跟大家講了處理大數(shù)據(jù)的必要性和特點,那么接著將談到如何處理大數(shù)據(jù),特別是常見的流程。具體的大數(shù)據(jù)處理方法其實有很多,但是根據(jù)長時間的實踐,我總結(jié)了一個基本的大數(shù)據(jù)處理流程(圖1),并且這個流程應(yīng)該能夠?qū)Υ蠹依眄槾髷?shù)據(jù)的處理有所幫助。

圖1. 大數(shù)據(jù)的常見處理流程
整個處理流程可以概括為四步,分別是采集、導(dǎo)入和預(yù)處理、統(tǒng)計和分析以及挖掘。
采集
利用多個的數(shù)據(jù)庫來接收發(fā)自客戶端(Web、App或者傳感器形式等)的數(shù)據(jù),并且用戶可以通過這些數(shù)據(jù)庫來進(jìn)行簡單的查詢和處理工作,比如,電商會使用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫MySQL和Oracle等來存儲每一筆事務(wù)數(shù)據(jù),除此之外,Redis和MongoDB這樣的NoSQL數(shù)據(jù)庫也常用于數(shù)據(jù)的采集。
在采集部分,主要特點和挑戰(zhàn)方面是并發(fā)數(shù)高,因為同時有可能會有成千上萬的用戶來進(jìn)行訪問和操作,比如著名用于購買火車票的12306站點和淘寶,它們并發(fā)的訪問量在峰值時達(dá)到上百萬,所以需要在采集端部署大量數(shù)據(jù)庫才能支撐,并且如何在這些數(shù)據(jù)庫之間進(jìn)行負(fù)載均衡和分片的確是需要深入地思考和設(shè)計。
導(dǎo)入/預(yù)處理
雖然有采集端本身會有很多數(shù)據(jù)庫,但是如果要對這些海量數(shù)據(jù)進(jìn)行有效地分析,還是應(yīng)該將這些來自前端的數(shù)據(jù)導(dǎo)入到一個集中的大型分布式數(shù)據(jù)庫或者分布式存儲集群,并且可以在導(dǎo)入基礎(chǔ)上做一些簡單的清洗和預(yù)處理工作,也有一些用戶會在導(dǎo)入時候使用來自Twitter的Storm來對數(shù)據(jù)進(jìn)行流式計算,來滿足部分業(yè)務(wù)的實時計算需求。
在特點和挑戰(zhàn)方面,主要是導(dǎo)入數(shù)據(jù)量大,每秒導(dǎo)入量經(jīng)常達(dá)到百兆,甚至GB級別。
統(tǒng)計/分析
統(tǒng)計與分析主要利用分布式數(shù)據(jù)庫或者分布式計算集群來對存儲于其內(nèi)的海量數(shù)據(jù)進(jìn)行普通的分析和分類匯總等,以滿足大多數(shù)常見的分析需求,在這方面,一些實時性需求會用到EMC 的GreenPlum、Oracle的Exadata以及基于MySQL的列式存儲Infobright等,而一些批處理或者基于半結(jié)構(gòu)化的需求可以使用Hadoop。
統(tǒng)計與分析這部分,主要特點和挑戰(zhàn)方面是分析涉及的數(shù)據(jù)量大,其對系統(tǒng)資源,特別是I/O會有極大地占用。
挖掘
與前面統(tǒng)計和分析不同的是,數(shù)據(jù)挖掘一般沒有什么預(yù)先設(shè)定好的主題,主要是在現(xiàn)有數(shù)據(jù)上面進(jìn)行基于各種算法的計算,從而起到預(yù)測(Predict)的效果,這樣實現(xiàn)一些高級別數(shù)據(jù)分析的需求,比較典型算法有用于聚類的K-Means、用于統(tǒng)計學(xué)習(xí)的SVM和用于分類的Naive Bayes,主要使用的工具有Hadoop的Mahout等。
在特點和挑戰(zhàn)方面,主要是挖掘的算法復(fù)雜,并且計算涉及的數(shù)據(jù)量和計算量都很大,還有,常用數(shù)據(jù)挖掘算法庫以單線程為主。
如何從“小”做起?
由于我平時與中小企業(yè)的接觸非常頻繁,雖然技術(shù)方案與實際的問題相關(guān),很難在一篇文章當(dāng)中詳盡地道來。除了上面那個基本處理流程之外,我下面會將一些基本的從“小”做起的思路給大家闡述一下:
- 認(rèn)識自己的不足,主要是在技術(shù)、人力和財力等方面是不僅無法與Google和Amazon這樣國外巨頭比肩,而且與國內(nèi)三大互聯(lián)網(wǎng)BAT(百度、阿里巴巴和騰訊)也是無法比肩的,所以需要深刻認(rèn)識;
-
明確分析自己的需求,下面是幾個常見的需求選項:
> 數(shù)據(jù)類型,是結(jié)構(gòu)化,半結(jié)構(gòu)化,還是非結(jié)構(gòu)化為主;
> 數(shù)據(jù)大小,內(nèi)部數(shù)據(jù)級別是TB級別、PB級別或者PB以上級別;
> 讀寫量級,比如每小時寫入的數(shù)據(jù)達(dá)到GB級別,或者每天寫入達(dá)到TB級別等;
> 讀寫比例,是寫為主,還是以讀為主;
> 并發(fā)數(shù),大致的每秒并發(fā)數(shù);
> 一致性,只接受強一致性,或者可以接受最終一致性和弱一致性;
> 延遲度,最高能容忍的延遲度是多少,是10毫秒,100毫秒,還是可以1秒;
> 分析的復(fù)雜度,需不需要引入較復(fù)雜的數(shù)據(jù)挖掘算法等。 - 要靈活使用現(xiàn)有的工具,首先,推薦使用一些開源或者是可以承受的商業(yè)軟件,雖然個人并不排斥自建,但是一定要有具體的商業(yè)價值,并且最好是在現(xiàn)有工具上的畫龍點睛,而不是從頭開始構(gòu)建;其次,工具方面應(yīng)與具體的場景相關(guān),在不同的場景要使用不同的工具。
- 盡量不要走平臺思路,應(yīng)以具體的應(yīng)用和場景為主,因為建一個平臺有很多附加的成本和設(shè)計,比如,Amazon的云平臺是通過至少五年時間構(gòu)建而成。特別是項目的初期,不建議走平臺這個方向,而是應(yīng)腳踏實地以具體的商業(yè)場景為主。
- 找準(zhǔn)切入點,最好是找到一個技術(shù)難度小,并且有一定的商業(yè)價值的場景來做大數(shù)據(jù)技術(shù)落地的試點,并不斷地進(jìn)行測試和迭代來驗證,而不是一味求復(fù)雜,求大,這樣比較容易說服企業(yè)管理層來進(jìn)行長期地投入和支持;
最后,想和大家說一下,“羅馬不是一天建成的”,無論是Google的用于大數(shù)據(jù)處理的基礎(chǔ)設(shè)施,還是我們國內(nèi)淘寶的“云梯”都是一步步通過不斷積累和實踐而成,所以我們這些中小企業(yè)應(yīng)該貫徹“大處著眼、小處著手”的方針來持續(xù)地驗證和推進(jìn)。還有,我們?nèi)嗽瓶萍紝⒂诮衲晟习肽臧l(fā)布用于海量結(jié)構(gòu)化數(shù)據(jù)處理的YunTable,由于其性能指標(biāo)非常出色,并且已經(jīng)有正式運行的大型集群,所以請各位朋友敬請期待。
轉(zhuǎn)載鏈接:http://os.51cto.com/art/201205/339746.htm


