物流寄情53:大資料分析的技術
楊惟雯
在大資料時代,我們發現,我們的資料來源不僅僅有傳統的結構化資料,還有非結構化資料,傳統資料存儲方式已經不能再符合原來要求。更進一步,一旦非結構化和結構化資料結合運算比較麻煩,如何即時產生分析結果,這是資料處理技術的挑戰。
大資料分析技術,是指從各種各樣類型的資料中,快速獲得有價值資訊的能力。適用於大資料分析的技術,包括大規模並行處理(MPP)資料庫、數據挖掘電網、分散式文件系統、分散式資料庫、雲端計算平臺、互聯網,和可擴展的存儲系統…等。
一、大資料的處理方法
整個大資料處理的普遍流程,至少應該滿足以下四個步驟,才能算得上是一個比較完整的大資料處理。
1. 採集:
大資料的採集是指利用多個資料庫來接收發自客戶端(Web、App或者感測器形式等)的資料,並且用戶可以通過這些資料庫來進行簡單的查詢和處理工作。比如,電商會使用傳統的關係型資料庫MySQL和Oracle等來存儲每一筆事務數據,除此之外,Redis和MongoDB這樣的NoSQL資料庫也常用於資料的採集。
在大資料的採集過程中,其主要特點和挑戰是併發數高,因為同時有可能會有成千上萬的用戶來進行訪問和操作,比如火車票售票網站和淘寶,它們併發的訪問量在峰值時達到上百萬,所以需要在採集端部署大量資料庫才能支撐。並且如何在這些資料庫之間進行負載均衡和分片的確是需要深入的思考和設計。
2. 導入/預處理:
雖然採集端本身會有很多資料庫,但是如果要對這些海量數據進行有效的分析,還是應該將這些來自前端的資料導入到一個集中的大型分散式資料庫,或者分散式存儲集群,並且可以在導入基礎上做一些簡單的清洗和預處理工作。也有一些用戶會在導入時使用來自Twitter的Storm來對資料進行流式計算,來滿足部分業務的實時計算需求。
導入與預處理過程的特點和挑戰主要是導入的資料量大,每秒鐘的導入量經常會達到百兆,甚至千兆級別。
3. 統計/分析:
統計與分析主要利用分散式資料庫,或者分散式計算集群來對存儲於其內的海量資料進行普通的分析和分類彙總等,以滿足大多數常見的分析需求,在這方面,一些實時性需求會用到EMC的GreenPlum、Oracle的Exadata,以及基於MySQL的列式存儲Infobright等,而一些批處理,或者基於半結構化數據的需求可以使用Hadoop。
統計與分析這部分的主要特點和挑戰是分析涉及的資料量大,其對系統資源,特別是I/O會有極大的佔用。
4. 挖掘:
與前面統計和分析過程不同的是,資料挖掘一般沒有什麼預先設定好的主題,主要是在現有資料上面進行基於各種演算法的計算,從而起到預測(Predict)的效果,從而實現一些高級別資料分析的需求。比較典型演算法有用於聚類的Kmeans、用於統計學習的SVM和用於分類的NaiveBayes,主要使用的工具有Hadoop的Mahout等。該過程的特點和挑戰主要是用於挖掘的演算法很複雜,並且計算涉及的資料量和計算量都很大,常用資料挖掘演算法都以單線程為主。
二、大資料分析的方法論
大資料是新一代的自然資源,跟自然資源不一樣的地方,大資料是不斷增長的新型資源,我們需要新的技術和工具,才能夠對它進行挖掘和分析。
大資料分析的技術,是從各種類型的大量資料中,快速獲得有價值資訊的技術,包括資料採集、存儲、管理、分析挖掘、可視化…等技術及其集成。
基於如此的認識,那麼目前大資料分析泛用哪些方法論呢?
一般大資料的分析基礎,是泛用以下五個分析方法:
1. 可視化分析。
大資料如此熱門的主要原因是因為它能提供可行性的見解。企業通常使用分析應用來提取大資料裡的本來難以挖掘的資訊,而這是用現有的技術和方法不可能辦到的。
可視化分析能夠直觀的呈現大資料特點,同時能夠非常容易被讀者所接受,就如同看圖說話一樣簡單明瞭。
2. 資料挖掘演算法。
大資料分析的理論核心就是資料挖掘演算法,各種資料挖掘的演算法基於不同的資料類型和格式,才能更加科學的呈現出資料本身具備的特點,也正是因為這些被全世界統計學家所公認的各種統計方法(可以稱之為真理)才能深入資料內部,挖掘出公認的價值。
另外一個方面,也是因為有這些資料挖掘的演算法,才能更快速的處理大資料,如果一個演算法得花上好幾年才能得出結論,那大資料的價值也就無從說起了。
3. 預測性分析。
大資料分析最終要的應用領域之一,就是預測性分析,從大資料中挖掘出特點,通過科學的建立模型,之後便可以通過模型帶入新的資料,從而預測未來的資料。
4. 語義引擎。
非結構化資料的多元化給資料分析帶來新的挑戰,我們需要一套工具系統去分析,提煉資料。語義引擎需要設計到有足夠的人工智慧以足以從資料中主動地提取資訊。
5. 資料質量和資料管理。
大資料分析離不開資料質量和資料管理,高質量的資料和有效的資料管理,無論是在學術研究還是在商業應用領域,都能夠保證分析結果的真實和有價值。
資料分析新體系結構
總之,只有對大資料進行分析,才能獲取很多智慧的、深入的、有價值的資訊。亦即,大資料的分析方法,可以說是決定最終資訊是否有價值的決定性因素。
三、大資料分析常用的工具
對於結構化資料的處理方式、要求和大資料的處理要求不完全一樣,我們需要在以前的結構化資料處理裡面加進很多新的處理方式,形成一個更完善、更完整的一個資料管理和處理體系。
1、資料採集方面:
ETL工具負責將分佈的、異構數據源中的數據如關係數據、平面數據文件等抽取到臨時中間層後進行清洗、轉換、集成,最後載入到數據倉庫或數據集市中,成為聯機分析處理、數據挖掘的基礎。
2、資料存取方面:關係資料庫、NOSQL、SQL等工具。
3、基礎架構方面:雲端存儲、分散式文件存儲等。
4、資料處理方面:自然語言處理(NLP,Natural Language Processing)是研究人與電腦交互的語言問題的一門學科。處理自然語言的關鍵是要讓電腦"理解"自然語言,所以自然語言處理又叫做自然語言理解(NLU,Natural Language Understanding),也稱為計算語言學(Computational Linguistics)。一方面它是語言資訊處理的一個分支,另一方面它是人工智慧(AI, Artificial Intelligence)的核心課題之一。
5、統計分析方面:假設檢驗、顯著性檢驗、差異分析、相關分析、T檢驗、方差分析、卡方分析、偏相關分析、距離分析、回歸分析、簡單回歸分析、多元回歸分析、逐步回歸、回歸預測與殘差分析、嶺回歸、logistic回歸分析、曲線估計、因數分析、聚類分析、主成分分析、因數分析、快速聚類法與聚類法、判別分析、對應分析、多元對應分析(最優尺度分析)、bootstrap技術等等。
6、資料挖掘方面:分類 (Classification)、估計(Estimation)、預測(Prediction)、相關性分組或關聯規則(Affinity grouping or association rules)、聚類(Clustering)、描述和可視化、Description and Visualization)、複雜數據類型挖掘(Text, Web ,圖形圖像,視頻,音頻等)
7、模型預測方面:預測模型、機器學習、建模模擬。
8、結果呈現方面:雲端計算、標簽雲、關係圖等。
四、建立完備的資料管理和智慧分析體系
無疑,只有通過完備的資料管理和智慧分析體系,才讓大資料真正發揮價值。
甲骨文公司認為,完備的大資料管理和處理體系是多結構化的,包括底層的資料來源層(檔資料來源、ROBMS資料來源、事件資料來源、其他資料來源)、資料收集層(資料獲取交換系統、資料收集系統、消息/事件系統)、資料存儲層(集中式檔案系統、結構化存儲、分散式檔案系統、靈活存儲)、資料計算層(即時計算、批量計算、流式計算)、資料整合層(資料整合)、資料智慧層(資料庫、資料倉庫、靈活資料存儲系統)、資料消費層(資料應用消費平臺和資料共用資料服務平臺)、資料洞察層(商務智慧、報表系統、互動式分析、資料探索、即時儀錶盤)等。
五、跋
大資料分析技術讓我們可以從各種各樣類型的資料中,快速獲得有價值資訊,尤其是非結構化資料,現在我們說地震不能夠預測,但未來可能是可以預測的。
留言列表