
大數據的常見處理流程
前面已經介紹了了處理大數據的必要性和特點,那么接著將談到如何處理大數據,特別是常見的處理流程。具體的大數據處理方法其實有很多,但是根據長時間的實踐,筆者總結了一個基本的大數據處理流程(圖1),并且這個流程應該能夠對大家理順大數據的處理有所幫助。
圖1. 大數據的常見處理流程
整個處理流程可以概括為四步,分別是采集、導入和預處理、統計和分析,以及挖掘
采集
大數據的采集是指利用多個數據庫來接收發自客戶端(Web、App或者傳感器形式等)的數據,并且用戶可以通過這些數據庫來進行簡單的查詢和處理工作。比如,電商會使用傳統的關系型數據庫MySQL和Oracle等來存儲每一筆事務數據,除此之外,Redis和MongoDB這樣的NoSQL數據庫也常用于數據的采集。
在大數據的采集過程中,其主要特點和挑戰是并發數高,因為同時有可能會有成千上萬的用戶來進行訪問和操作,比如火車票售票網站和淘寶,它們并發的訪問量在峰值時達到上百萬,所以需要在采集端部署大量數據庫才能支撐。并且如何在這些數據庫之間進行負載均衡和分片的確是需要深入的思考和設計。
導入/預處理
雖然采集端本身會有很多數據庫,但是如果要對這些海量數據進行有效的分析,還是應該將這些來自前端的數據導入到一個集中的大型分布式數據庫,或者分布式存儲集群,并且可以在導入基礎上做一些簡單的清洗和預處理工作。也有一些用戶會在導入時使用來自Twitter的Storm來對數據進行流式計算,來滿足部分業務的實時計算需求。
導入與預處理過程的特點和挑戰主要是導入的數據量大,每秒鐘的導入量經常會達到百兆,甚至千兆級別。
統計/分析
統計與分析主要利用分布式數據庫,或者分布式計算集群來對存儲于其內的海量數據進行普通的分析和分類匯總等,以滿足大多數常見的分析需求,在這方面,一些實時性需求會用到EMC 的GreenPlum、Oracle的Exadata,以及基于MySQL的列式存儲Infobright等,而一些批處理,或者基于半結構化數據的需求可以使用Hadoop。
統計與分析這部分的主要特點和挑戰是分析涉及的數據量大,其對系統資源,特別是I/O會有極大的占用。
挖掘
與前面統計和分析過程不同的是,數據挖掘一般沒有什么預先設定好的主題,主要是在現有數據上面進行基于各種算法的計算,從而起到預測(Predict)的效果,從而實現一些高級別數據分析的需求。比較典型算法有用于聚類的K-Means、用于統計學習的SVM和用于分類的Naive Bayes,主要使用的工具有Hadoop的Mahout等。
該過程的特點和挑戰主要是用于挖掘的算法很復雜,并且計算涉及的數據量和計算量都很大,還有,常用數據挖掘算法都以單線程為主。
如何從“小”做起?
由于筆者平時與中小企業的接觸非常頻繁,雖然技術方案與實際的問題相關,但卻很難在一篇文章當中詳盡地道來。除了上述的基本處理流程之外,以下會將一些基本的從“小”做起的思路作闡述:
1. 認識自己的不足。主要是在技術、人力和財力等方面不僅無法與Google和Amazon這樣的國外巨頭比肩,而且與國內三大互聯網BAT(百度、阿里巴巴和騰訊)也是無法比肩的,所以需要深刻認識;
2. 明確分析自己的需求。下面是幾個常見的需求選項:
數據類型,是結構化,半結構化,還是非結構化為主;
數據大小,內部數據級別是TB級別、PB級別或者PB以上的級別;
讀寫量級,比如每小時寫入的數據達到GB級別,或者每天寫入達到TB級別等;
讀寫比例,是寫為主,還是以讀為主;
并發數,大致的每秒并發數;
一致性,只接受強一致性,或者可以接受最終一致性和弱一致性;
延遲度,最高能容忍的延遲度是多少,是10毫秒,100毫秒,還是1秒;
分析的復雜度,需不需要引入較復雜的數據挖掘算法等。
3. 要靈活使用現有的工具。首先,推薦使用一些開源,或者是價格可以承受的商業軟件。雖然個人并不排斥自建,但是一定要有具體的商業價值,并且最好是在現有工具上的畫龍點睛,而不是從頭開始構建;其次,工具方面應與具體的場景相關,在不同的場景要使用不同的工具。
4. 盡量不要走平臺思路,應以具體的應用和場景為主。因為建一個平臺有很多附加的成本和設計,比如,Amazon的云平臺是通過至少五年時間構建而成。特別是項目初期,不建議走平臺這個方向,而是應腳踏實地以具體的商業場景為主。
5. 找準切入點。最好是找到一個技術難度小,并且有一定的商業價值的場景來做大數據技術落地的試點,并不斷地進行測試和迭代來驗證,而不是一味求復雜、求大,這樣比較容易說服企業管理層來進行長期的投入和支持;
最后,想強調一下,“羅馬不是一天建成的”。無論是Google的用于大數據處理的基礎設施,還是國內淘寶的“云梯”都是一步步通過不斷的積累和實踐完成的,所以中小企業應該貫徹“大處著眼、小處著手”的方針來持續地驗證和推進。
CIO頻道人物視窗
CIO頻道方案案例庫
大數據建設方案案例庫
電子政務建設方案案例庫
互聯集成系統構建方案案例庫
商務智能建設方案案例庫
系統集成類軟件信息研發企業名錄