大數(shù)據(jù)從“小”做起:中小企業(yè)Big Data解決之道
任何一個(gè)時(shí)代或者模式的興起,都離不開與之相關(guān)的Killer App,比如,C/S時(shí)代的SAP ERP,互聯(lián)網(wǎng) 1.0 時(shí)代的門戶,以及互聯(lián)網(wǎng) 2.0時(shí)代的搜索和SNS等,那么在當(dāng)今云計(jì)算這個(gè)時(shí)代有那些Killer App呢?當(dāng)然首當(dāng)其沖的肯定是以VMware 和Amazon EC2為代表的虛擬化和相關(guān)IaaS服務(wù),除此之外,新近崛起的大數(shù)據(jù)絕對(duì)也是云計(jì)算的Killer App之一,并且不僅類似百度、阿里以及騰訊這樣的互聯(lián)網(wǎng)巨頭有相關(guān)的應(yīng)用需求,而且根據(jù)我個(gè)人平時(shí)與客戶接觸,發(fā)現(xiàn)有很多普通中小企業(yè),特別是中型的互聯(lián)網(wǎng)和物聯(lián)網(wǎng)企業(yè),在這方面的場(chǎng)景也有很多。本文將首先給大家介紹一下在我眼中的大數(shù)據(jù),以及大數(shù)據(jù)的意義和特點(diǎn),再給大家聊聊大數(shù)據(jù)的常見處理流程,之后將會(huì)和大家分享一下我是如何幫助一些中小企業(yè)實(shí)施大數(shù)據(jù)相關(guān)的解決方案,也就是大數(shù)據(jù)如何從“小”做起。
什么是大數(shù)據(jù)?
過去計(jì)算機(jī)產(chǎn)生的數(shù)據(jù),較簡單,基本上都是一筆筆事務(wù),總量雖大,但是都是整體增長幅度都還是可控的,比如傳統(tǒng)的金融企業(yè),經(jīng)常使用幾臺(tái)大型機(jī)就管理其所有的業(yè)務(wù)數(shù)據(jù),而最近幾年,由于以平板、智能手機(jī)和傳感器為代表的智能設(shè)備越來越多,同時(shí)這些設(shè)備的生成的數(shù)據(jù)更是遠(yuǎn)遠(yuǎn)地超過我們的想象。據(jù)美國著名咨詢公司IDC的統(tǒng)計(jì),全球數(shù)字信息在未來幾年將呈現(xiàn)驚人增長,預(yù)計(jì)到2020年總量將是現(xiàn)在的44倍。據(jù)另外一份數(shù)據(jù)顯示,全球 90% 的數(shù)據(jù)都是在過去兩年中生成的,并且每年以50%的速度進(jìn)行增長,每天,遍布世界各個(gè)角落的傳感器、移動(dòng)設(shè)備、在線交易和社交網(wǎng)絡(luò)產(chǎn)生上PB級(jí)別的數(shù)據(jù);每個(gè)月,全球網(wǎng)友發(fā)布了 10多 億條 Twitter 信息和300多 億條 Facebook 信息。那么這些大數(shù)據(jù)的存在有什么價(jià)值和意義呢?#p#
大數(shù)據(jù)的意義
我個(gè)人和一些朋友一直覺得大數(shù)據(jù)就好比一口油井,因?yàn)槔锩嫣N(yùn)含著非常豐富的價(jià)值,如果企業(yè)能有效利用其內(nèi)部存儲(chǔ)的海量數(shù)據(jù),那么將會(huì)改善其自身的產(chǎn)品和服務(wù),從而提升客戶和受眾的體驗(yàn),從而在大數(shù)據(jù)時(shí)代獲取競(jìng)爭(zhēng)優(yōu)勢(shì),并且隨著本身分析和挖掘技術(shù)不斷地提升,可以在之前的基礎(chǔ)上提供新的決策模式,從而支持管理者進(jìn)行快速和精確地決策,這樣能夠超越對(duì)手,搶占市場(chǎng)先機(jī),獨(dú)領(lǐng)風(fēng)騷。
下面通過幾個(gè)行業(yè)來和大家舉例講解一下大數(shù)據(jù)有那些意義和作用?
互聯(lián)網(wǎng)企業(yè)
我們有一些客戶,他們主要是做網(wǎng)絡(luò)輿情或者網(wǎng)絡(luò)廣告,他們明天都會(huì)處理和收集TB級(jí)別日志或者網(wǎng)頁,結(jié)構(gòu)化和非結(jié)構(gòu)化都有,他們就是通過分析這些數(shù)據(jù)來給其客戶提供價(jià)值,比如分析一下一個(gè)男性護(hù)膚品廣告是在世界杯期間投放好,還是在亞洲杯那段時(shí)間播出好?還有,在電子商務(wù)方面,國外eBay的分析平臺(tái)每天處理的數(shù)據(jù)量高達(dá)100PB,超過了納斯達(dá)克交易所每天的數(shù)據(jù)處理量。為了準(zhǔn)確分析用戶的購物行為,eBay定義了超過500種類型的數(shù)據(jù),對(duì)顧客的行為進(jìn)行跟蹤分析,并且通過這些分析促進(jìn)eBay自身的業(yè)務(wù)創(chuàng)新和利潤增長。
智能電網(wǎng)
我們有一個(gè)合作伙伴,他們是做智能電網(wǎng)相關(guān)的解決方案。對(duì)那些電網(wǎng)而言,如果無法準(zhǔn)確預(yù)估實(shí)際電力的使用情況,將會(huì)使電網(wǎng)要求電廠發(fā)出過量的電力,雖然這些過量電力可以通過某種模式進(jìn)行保存,但是大量的電力浪費(fèi)已不可避免。而通過他們智能電網(wǎng)的解決方案,每隔一刻鐘會(huì)采集一個(gè)省幾千萬用戶的用電數(shù)據(jù),之后他們會(huì)根據(jù)這些數(shù)據(jù)來精確分析用戶的用電模型,最后通過這個(gè)用電模型來優(yōu)化電力生產(chǎn),從而有效地減少電力資源的浪費(fèi)。
車聯(lián)網(wǎng)
在車聯(lián)網(wǎng)方面,我們也有一個(gè)客戶,他們?cè)谝粋€(gè)城市有幾十萬臺(tái)基于Android的終端,而這些終端會(huì)每隔一段時(shí)間會(huì)發(fā)送具體位置的GPS消息給后端的數(shù)據(jù)集群,接著這些集群會(huì)分析一下這些海量的GPS信息,分析出那些路段在什么時(shí)候比較堵,之后將這些非常有價(jià)值的信息不斷地推送給客戶,從而幫助用戶減少在路上所消耗的時(shí)間。
醫(yī)療行業(yè)
在這個(gè)方面,大數(shù)據(jù)的用例有很多。首先,通過分析大量的病例信息,將有效地幫助醫(yī)生治病;其次,假設(shè)在一個(gè)病人身體的多個(gè)節(jié)點(diǎn)加入探針設(shè)備,而且每個(gè)探針每天會(huì)采集GB級(jí)別關(guān)于人體細(xì)胞和血液運(yùn)行狀態(tài)的數(shù)據(jù),之后計(jì)算集群可以根據(jù)這些數(shù)據(jù)來來進(jìn)行分析,這樣能更精確地判斷病因,從而讓醫(yī)生對(duì)病人進(jìn)行更具針對(duì)性地治療。
機(jī)器學(xué)習(xí)
在這方面,最出名的例子莫過于最近很火的Siri,它后臺(tái)有一個(gè)龐大的HBase集群來對(duì)類似語言這樣的文本數(shù)據(jù)進(jìn)行分析和管理,從而使Siri變成一位越來越老練的個(gè)人助手,為iPhone 4S的用戶提供了日期提醒、天氣預(yù)報(bào)和飯店建議等服務(wù)。除此之外,還有IBM的Watson,它通過一個(gè)基于Hadoop UIMA框架的集群來挖掘海量的文本信息來實(shí)現(xiàn)一定程度的人工智能,并在美國著名知識(shí)問答節(jié)目Jeopardy中戰(zhàn)勝多位出色的人類選手。
國家安全
這方面最出名的例子,莫過于美國的聯(lián)邦情報(bào)局(CIA)。在過去10年中,他們通過無人偵察機(jī)收集了大量阿富汗那邊地理相關(guān)的視頻資料,之后通過分析這些海量視頻資料,來對(duì)極具危害性的恐怖組織團(tuán)伙進(jìn)行定位。#p#
大數(shù)據(jù)的特點(diǎn)
大數(shù)據(jù),不僅有“大”這個(gè)特點(diǎn),除此之外,它還有很多其他特色,在這方面,業(yè)界各個(gè)廠商都有自己獨(dú)特的見解,但是總體而言,我覺得可以用“4V+1C”來概括,“4V+1C分別代表了Variety(多樣化)、Volume(海量)、Velocity(快速)、Vitality(靈活)以及Complexity(復(fù)雜)這五個(gè)單詞。
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級(jí)別可謂是常態(tài),我接觸的一些客戶每天量都在幾十GB,幾百GB左右,我估計(jì)國內(nèi)大型互聯(lián)網(wǎng)企業(yè)的每天數(shù)據(jù)量已經(jīng)接近TB級(jí)別。
Velocity(快速)
要求快速處理,因?yàn)橛行?shù)據(jù)存在時(shí)效性,比如電商的數(shù)據(jù),假如今天數(shù)據(jù)的分析結(jié)果要等到明天才能得到,那么將會(huì)使電商很難做類似補(bǔ)貨這樣的決策,從而導(dǎo)致這些數(shù)據(jù)失去了分析的意義。
Vitality(靈活)
因?yàn)樵诨ヂ?lián)網(wǎng)時(shí)代,和以往相比,企業(yè)的業(yè)務(wù)需求更新的頻率加快了很多,那么相關(guān)大數(shù)據(jù)的分析和處理模型必須快速地適應(yīng)。
Complexity(復(fù)雜)
雖然傳統(tǒng)的BI已經(jīng)很復(fù)雜了,但是由于前面4個(gè)V的存在,使得針對(duì)大數(shù)據(jù)的處理和分析更艱巨,并且過去那套基于關(guān)系型數(shù)據(jù)庫的BI開始有點(diǎn)不合時(shí)宜了,同時(shí)也需要根據(jù)不同的業(yè)務(wù)場(chǎng)景,采取不同處理方式和工具。#p#
大數(shù)據(jù)的常見處理流程
前面已經(jīng)跟大家講了處理大數(shù)據(jù)的必要性和特點(diǎn),那么接著將談到如何處理大數(shù)據(jù),特別是常見的流程。具體的大數(shù)據(jù)處理方法其實(shí)有很多,但是根據(jù)長時(shí)間的實(shí)踐,我總結(jié)了一個(gè)基本的大數(shù)據(jù)處理流程(圖1),并且這個(gè)流程應(yīng)該能夠?qū)Υ蠹依眄槾髷?shù)據(jù)的處理有所幫助。
圖1. 大數(shù)據(jù)的常見處理流程
整個(gè)處理流程可以概括為四步,分別是采集、導(dǎo)入和預(yù)處理、統(tǒng)計(jì)和分析以及挖掘。
采集
利用多個(gè)的數(shù)據(jù)庫來接收發(fā)自客戶端(Web、App或者傳感器形式等)的數(shù)據(jù),并且用戶可以通過這些數(shù)據(jù)庫來進(jìn)行簡單的查詢和處理工作,比如,電商會(huì)使用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫MySQL和Oracle等來存儲(chǔ)每一筆事務(wù)數(shù)據(jù),除此之外,Redis和MongoDB這樣的NoSQL數(shù)據(jù)庫也常用于數(shù)據(jù)的采集。
在采集部分,主要特點(diǎn)和挑戰(zhàn)方面是并發(fā)數(shù)高,因?yàn)橥瑫r(shí)有可能會(huì)有成千上萬的用戶來進(jìn)行訪問和操作,比如著名用于購買火車票的12306站點(diǎn)和淘寶,它們并發(fā)的訪問量在峰值時(shí)達(dá)到上百萬,所以需要在采集端部署大量數(shù)據(jù)庫才能支撐,并且如何在這些數(shù)據(jù)庫之間進(jìn)行負(fù)載均衡和分片的確是需要深入地思考和設(shè)計(jì)。
導(dǎo)入/預(yù)處理
雖然有采集端本身會(huì)有很多數(shù)據(jù)庫,但是如果要對(duì)這些海量數(shù)據(jù)進(jìn)行有效地分析,還是應(yīng)該將這些來自前端的數(shù)據(jù)導(dǎo)入到一個(gè)集中的大型分布式數(shù)據(jù)庫或者分布式存儲(chǔ)集群,并且可以在導(dǎo)入基礎(chǔ)上做一些簡單的清洗和預(yù)處理工作,也有一些用戶會(huì)在導(dǎo)入時(shí)候使用來自Twitter的Storm來對(duì)數(shù)據(jù)進(jìn)行流式計(jì)算,來滿足部分業(yè)務(wù)的實(shí)時(shí)計(jì)算需求。
在特點(diǎn)和挑戰(zhàn)方面,主要是導(dǎo)入數(shù)據(jù)量大,每秒導(dǎo)入量經(jīng)常達(dá)到百兆,甚至GB級(jí)別。
統(tǒng)計(jì)/分析
統(tǒng)計(jì)與分析主要利用分布式數(shù)據(jù)庫或者分布式計(jì)算集群來對(duì)存儲(chǔ)于其內(nèi)的海量數(shù)據(jù)進(jìn)行普通的分析和分類匯總等,以滿足大多數(shù)常見的分析需求,在這方面,一些實(shí)時(shí)性需求會(huì)用到EMC 的GreenPlum、Oracle的Exadata以及基于MySQL的列式存儲(chǔ)Infobright等,而一些批處理或者基于半結(jié)構(gòu)化的需求可以使用Hadoop。
統(tǒng)計(jì)與分析這部分,主要特點(diǎn)和挑戰(zhàn)方面是分析涉及的數(shù)據(jù)量大,其對(duì)系統(tǒng)資源,特別是I/O會(huì)有極大地占用。
挖掘
與前面統(tǒng)計(jì)和分析不同的是,數(shù)據(jù)挖掘一般沒有什么預(yù)先設(shè)定好的主題,主要是在現(xiàn)有數(shù)據(jù)上面進(jìn)行基于各種算法的計(jì)算,從而起到預(yù)測(cè)(Predict)的效果,這樣實(shí)現(xiàn)一些高級(jí)別數(shù)據(jù)分析的需求,比較典型算法有用于聚類的K-Means、用于統(tǒng)計(jì)學(xué)習(xí)的SVM和用于分類的Naive Bayes,主要使用的工具有Hadoop的Mahout等。
在特點(diǎn)和挑戰(zhàn)方面,主要是挖掘的算法復(fù)雜,并且計(jì)算涉及的數(shù)據(jù)量和計(jì)算量都很大,還有,常用數(shù)據(jù)挖掘算法庫以單線程為主。#p#
如何從“小”做起?
由于我平時(shí)與中小企業(yè)的接觸非常頻繁,雖然技術(shù)方案與實(shí)際的問題相關(guān),很難在一篇文章當(dāng)中詳盡地道來。除了上面那個(gè)基本處理流程之外,我下面會(huì)將一些基本的從“小”做起的思路給大家闡述一下:
- 認(rèn)識(shí)自己的不足,主要是在技術(shù)、人力和財(cái)力等方面是不僅無法與Google和Amazon這樣國外巨頭比肩,而且與國內(nèi)三大互聯(lián)網(wǎng)BAT(百度、阿里巴巴和騰訊)也是無法比肩的,所以需要深刻認(rèn)識(shí);
- 明確分析自己的需求,下面是幾個(gè)常見的需求選項(xiàng):
> 數(shù)據(jù)類型,是結(jié)構(gòu)化,半結(jié)構(gòu)化,還是非結(jié)構(gòu)化為主;
> 數(shù)據(jù)大小,內(nèi)部數(shù)據(jù)級(jí)別是TB級(jí)別、PB級(jí)別或者PB以上級(jí)別;
> 讀寫量級(jí),比如每小時(shí)寫入的數(shù)據(jù)達(dá)到GB級(jí)別,或者每天寫入達(dá)到TB級(jí)別等;
> 讀寫比例,是寫為主,還是以讀為主;
> 并發(fā)數(shù),大致的每秒并發(fā)數(shù);
> 一致性,只接受強(qiáng)一致性,或者可以接受最終一致性和弱一致性;
> 延遲度,最高能容忍的延遲度是多少,是10毫秒,100毫秒,還是可以1秒;
> 分析的復(fù)雜度,需不需要引入較復(fù)雜的數(shù)據(jù)挖掘算法等。 - 要靈活使用現(xiàn)有的工具,首先,推薦使用一些開源或者是可以承受的商業(yè)軟件,雖然個(gè)人并不排斥自建,但是一定要有具體的商業(yè)價(jià)值,并且最好是在現(xiàn)有工具上的畫龍點(diǎn)睛,而不是從頭開始構(gòu)建;其次,工具方面應(yīng)與具體的場(chǎng)景相關(guān),在不同的場(chǎng)景要使用不同的工具。
- 盡量不要走平臺(tái)思路,應(yīng)以具體的應(yīng)用和場(chǎng)景為主,因?yàn)榻ㄒ粋€(gè)平臺(tái)有很多附加的成本和設(shè)計(jì),比如,Amazon的云平臺(tái)是通過至少五年時(shí)間構(gòu)建而成。特別是項(xiàng)目的初期,不建議走平臺(tái)這個(gè)方向,而是應(yīng)腳踏實(shí)地以具體的商業(yè)場(chǎng)景為主。
- 找準(zhǔn)切入點(diǎn),最好是找到一個(gè)技術(shù)難度小,并且有一定的商業(yè)價(jià)值的場(chǎng)景來做大數(shù)據(jù)技術(shù)落地的試點(diǎn),并不斷地進(jìn)行測(cè)試和迭代來驗(yàn)證,而不是一味求復(fù)雜,求大,這樣比較容易說服企業(yè)管理層來進(jìn)行長期地投入和支持;
最后,想和大家說一下,“羅馬不是一天建成的”,無論是Google的用于大數(shù)據(jù)處理的基礎(chǔ)設(shè)施,還是我們國內(nèi)淘寶的“云梯”都是一步步通過不斷積累和實(shí)踐而成,所以我們這些中小企業(yè)應(yīng)該貫徹“大處著眼、小處著手”的方針來持續(xù)地驗(yàn)證和推進(jìn)。還有,我們?nèi)嗽瓶萍紝⒂诮衲晟习肽臧l(fā)布用于海量結(jié)構(gòu)化數(shù)據(jù)處理的YunTable,由于其性能指標(biāo)非常出色,并且已經(jīng)有正式運(yùn)行的大型集群,所以請(qǐng)各位朋友敬請(qǐng)期待。