大數據分析的五個基本方面
預測分析能力(預測分析能力)
數據挖掘可以讓分析師更好地理解數據,而預測分析可以讓分析師根據可視化分析和數據挖掘的結果做出壹些預測性的判斷。
數據質量和主數據管理(數據質量和數據管理)
數據質量和數據管理是壹些管理最佳實踐。通過標準化流程和工具處理數據可以確保預定義的高質量分析結果。
分析可視化(可視化分析)
無論對於數據分析專家還是普通用戶,數據可視化都是對數據分析工具最基本的要求。可視化可以直觀地展示數據,讓數據自己說話,讓受眾聽到結果。
語義引擎(語義引擎)
我們知道非結構化數據的多樣性給數據分析帶來了新的挑戰,我們需要壹系列的工具來分析、提取和分析數據。語義引擎需要被設計成能夠智能地從“文檔”中提取信息。
數據挖掘算法
可視化是給人的,數據挖掘是給機器的。聚類、分割、離群點分析等算法讓我們可以深入挖掘數據,挖掘價值。這些算法不僅要處理大數據量,還要處理大數據速度。
如果大數據真的是下壹個重要的技術創新,我們最好關註大數據能給我們帶來的好處,而不僅僅是挑戰。
大數據處理
大數據處理數據時代觀念的三大轉變:所有的都不應該被抽樣,效率不應該絕對準確,相關性不應該是因果關系。具體的大數據處理方法其實有很多,但是筆者根據長期的實踐總結了壹個基本的大數據處理流程,這個流程應該對大家理順大數據的處理有所幫助。整個處理流程可以概括為四個步驟,即采集、導入和預處理、統計和分析、挖掘。
收集
大數據的采集是指使用多個數據庫從客戶端接收數據,用戶可以通過這些數據庫進行簡單的查詢和處理。例如,電子商務公司使用傳統的關系數據庫如MySQL和Oracle來存儲每筆交易的數據。此外,Redis和MongoDB等NoSQL數據庫也常用於數據收集。
在大數據采集過程中,其主要特點和挑戰是高並發,因為可能會有成千上萬的用戶同時訪問和操作,比如火車票售票網站和淘寶,其並發訪問量高峰時達到數百萬,因此需要在采集端部署大量的數據庫來支撐。而如何在這些數據庫之間進行負載均衡和碎片化,確實需要深入的思考和設計。
統計/分析
統計分析主要是利用分布式數據庫或分布式計算集群,對存儲在其中的海量數據進行分析歸類,以滿足大多數常見的分析需求。在這方面,壹些實時需求會使用EMC的GreenPlum,Oracle的Exadata,基於MySQL的Infobright,壹些批量處理或者半結構化的數據需求可以使用Hadoop。統計與分析的主要特點和挑戰是分析涉及的數據量大,會占用大量的系統資源,尤其是I/O。
進口/預處理
雖然采集終端本身有很多數據庫,但是要想有效的分析這些海量數據,就要把這些數據從前端導入到壹個集中式的大型分布式數據庫或者分布式存儲集群中,在導入的基礎上可以做壹些簡單的清理和預處理。也有壹些用戶在導入時會使用來自Twitter的Storm來流數據,以滿足壹些業務的實時計算需求。導入和預處理過程的特點和挑戰主要是導入數據量大,往往達到每秒百兆甚至千兆的水平。
挖掘
不同於以往的統計和分析過程,數據挖掘壹般沒有預設的主題,主要基於各種算法對現有數據的計算,從而達到預測的效果,滿足壹些高層次數據分析的需要。典型的算法是聚類的K-Means,統計學習的SVM和分類的樸素貝葉斯。使用的主要工具是Hadoop Mahout。這個過程的特點和挑戰是,用於挖掘的算法非常復雜,涉及的數據量和計算量非常大。此外,常見的數據挖掘算法主要是單線程的。