1. 程式人生 > >大資料分析技術研究報告(一)

大資料分析技術研究報告(一)

作者:朱賽凡

一 資料分析處理需求分類

1 事務型處理

在我們實際生活中,事務型資料處理需求非常常見,例如:淘寶網站交易系統、12306網站火車票交易系統、超市POS系統等都屬於事務型資料處理系統。

這類系統資料處理特點包括以下幾點:

一是事務處理型操作都是細粒度操作,每次事務處理涉及資料量都很小。

二是計算相對簡單,一般只有少數幾步操作組成,比如修改某行的某列;

三是事務型處理操作涉及資料的增、刪、改、查,對事務完整性和資料一致性要求非常高。

四是事務性操作都是實時互動式操作,至少能在幾秒內執行完成;

五是基於以上特點,索引是支撐事務型處理一個非常重要的技術。

在資料量和併發交易量不大情況下,一般依託單機版關係型資料庫,例如ORACLE、MYSQL、SQLSERVER,再加資料複製(DataGurad、 RMAN、MySQL資料複製等)等高可用措施即可滿足業務需求。

在資料量和併發交易量增加情況下,一般可以採用ORALCE RAC叢集方式或者是通過硬體升級(採用小型機、大型機等,如銀行系統、運營商計費系統、證卷系統)來支撐。

事務型操作在淘寶、12306等網際網路企業中,由於資料量大、訪問併發量高,必然採用分散式技術來應對,這樣就帶來了分散式事務處理問題,而分散式事務處理很難做到高效,因此一般採用根據業務應用特點來開發專用的系統來解決本問題。

2 資料統計分析

資料統計主要是被各類企業通過分析自己的銷售記錄等企業日常的運營資料,以輔助企業管理層來進行運營決策。典型的使用場景有:週報表、月報表等固定時間提供給領導的各類統計報表;市場營銷部門,通過各種維度組合進行統計分析,以制定相應的營銷策略等。

資料統計分析特點包括以下幾點:

一是資料統計一般涉及大量資料的聚合運算,每次統計涉及資料量會比較大。

二是資料統計分析計算相對複雜,例如會涉及大量goupby、 子查詢、巢狀查詢、視窗函式、聚合函式、排序等;有些複雜統計可能需要編寫SQL指令碼才能實現。

三是資料統計分析實時性相對沒有事務型操作要求高。但除固定報表外,目前越來越多的使用者希望能做做到互動式實時統計;

傳統的資料統計分析主要採用基於MPP並行資料庫的資料倉庫技術。主要採用維度模型,通過預計算等方法,把資料整理成適合統計分析的結構來實現高效能的資料統計分析,以支援可以通過下鑽和上卷操作,實現各種維度組合以及各種粒度的統計分析。

另外目前在資料統計分析領域,為了滿足互動式統計分析需求,基於記憶體計算的資料庫倉庫系統也成為一個發展趨勢,例如SAP的HANA平臺。

3 資料探勘

資料探勘主要是根據商業目標,採用資料探勘演算法自動從海量資料中發現隱含在海量資料中的規律和知識。

資料探勘主要過程是:根據分析挖掘目標,從資料庫中把資料提取出來,然後經過ETL組織成適合分析挖掘演算法使用寬表,然後利用資料探勘軟體進行挖掘。傳統的資料探勘軟體,一般只能支援在單機上進行小規模資料處理,受此限制傳統資料分析挖掘一般會採用抽樣方式來減少資料分析規模。

資料探勘的計算複雜度和靈活度遠遠超過前兩類需求。一是由於資料探勘問題開放性,導致資料探勘會涉及大量衍生變數計算,衍生變數多變導致資料預處理計算複雜性;二是很多資料探勘演算法本身就比較複雜,計算量就很大,特別是大量機器學習演算法,都是迭代計算,需要通過多次迭代來求最優解,例如K-means聚類演算法、PageRank演算法等。

因此總體來講,資料分析挖掘的特點是:

 1、資料探勘的整個計算更復雜,一般是由多個步驟組成計算流,多個計算步驟之間存在資料交換,也就是會產生大量中間結果,難以用一條sql語句來表達。

2、計算應該能夠非常靈活表達,很多需要利用高階語言程式設計實現。