天天看點

《大資料分析原理與實踐》——1.4 大資料分析的過程、技術與難點

大資料分析的過程大緻分為下面6個步驟:

(1)業務了解

最初的階段集中在了解項目目标和從業務的角度了解需求,同時将業務知識轉化為資料分析問題的定義和實作目标的初步計劃上。

(2)資料了解

資料了解階段從初始的資料收集開始,通過一些活動的處理,目的是熟悉資料,識别資料的品質問題,首次發現資料的内部屬性,或是探測引起興趣的子集去形成隐含資訊的假設。

(3)資料準備

資料準備階段包括從未處理資料中構造最終資料集的所有活動。這些資料将是模型工具的輸入值。這個階段的任務有的能執行多次,沒有任何規定的順序。任務包括表、記錄和屬性的選擇,以及為模型工具轉換和清洗資料。

(4)模組化

在這個階段,可以選擇和應用不同的模型技術,模型參數被調整到最佳的數值。有些技術可以解決一類相同的資料分析問題;有些技術在資料形成上有特殊要求,是以需要經常跳回到資料準備階段。

(5)評估

在這個階段,已經從資料分析的角度建立了一個高品質顯示的模型。在最後部署模型之前,重要的事情是徹底地評估模型,檢查構造模型的步驟,確定模型可以完成業務目标。這個階段的關鍵目的是确定是否有重要業務問題沒有被充分考慮。在這個階段結束後,必須達成一個資料分析結果使用的決定。

(6)部署

通常,模型的建立不是項目的結束。模型的作用是從資料中找到知識,獲得的知識需要以便于使用者使用的方式重新組織和展現。根據需求,這個階段可以産生簡單的報告,或是實作一個比較複雜的、可重複的資料分析過程。在很多案例中,由客戶而不是資料分析人員承擔部署的工作。

作為大資料的主要應用,大資料分析涉及的技術相當廣泛,主要包括如下幾類。

1)資料采集:大資料的采集是指利用多個資料庫來接收發自用戶端(Web、App或者傳感器形式等)的資料,并且使用者可以通過這些資料庫來進行簡單的查詢和處理工作。例如,電商會使用傳統的關系型資料庫MySQL和Oracle等來存儲每一筆事務資料,除此之外,Redis和MongoDB這樣的NoSQL資料庫也常用于資料的采集。阿裡雲的DataHub是一款資料采集産品,可為使用者提供實時資料的釋出和訂閱功能,寫入的資料可直接進行流式資料處理,也可參與後續的離線作業計算,并且DataHub同主流插件和用戶端保持高度相容。

在大資料的采集過程中,其主要特點和挑戰是并發數高,因為同時有可能會有成千上萬的使用者來進行通路和操作,例如火車票售票網站和淘寶,它們并發的通路量在峰值時達到上百萬,是以需要在采集端部署大量資料庫才能支撐。并且,如何在這些資料庫之間進行負載均衡和分片的确需要深入的思考和設計。ETL工具負責将分布的、異構資料源中的資料如關系資料、平面資料檔案等抽取到臨時中間層後進行清洗、轉換、內建,最後加載到資料倉庫或資料集市中,成為聯機分析處理、資料挖掘的基礎。

2)資料管理:對大資料進行分析的基礎是對大資料進行有效的管理,使大資料“存得下、查得出”,并且為大資料的高效分析提供基本資料操作(比如Join和聚集操作等),實作資料有效管理的關鍵是資料組織。面向大資料管理已經提出了一系列技術。随着大資料應用越來越廣泛,應用場景的多樣化和資料規模的不斷增加,傳統的關系資料庫在很多情況下難以滿足要求,學術界和産業界開發出了一系列新型資料庫管理系統,例如适用于處理大量資料的高通路負載以及日志系統的鍵值資料庫(如Tokyo Cabinet/Tyrant、Redis、Voldemort、Oracle BDB)、适用于分布式大資料管理的列存儲資料(如Cassandra、HBase、Riak)、适用于Web應用的文檔型資料庫(如CouchDB、MongoDB、SequoiaDB)、适用于社交網絡和知識管理等的圖形資料庫(如Neo4J、InfoGrid、Infinite Graph),這些資料庫統稱為NoSQL。面對大資料的挑戰,學術界和工業界拓展了傳統的關系資料庫,即NewSQL,這是對各種新的可擴充/高性能資料庫的簡稱,這類資料庫不僅具有NoSQL對海量資料的存儲管理能力,還保持了傳統資料庫支援ACID和SQL的特性。典型的NewSQL包括VoltDB、ScaleBase、dbShards、Scalearc等。例如,阿裡雲分析型資料庫可實作對資料的實時多元分析,百億量級多元查詢隻需100毫秒。

3)基礎架構:從更底層來看,對大資料進行分析還需要高性能的計算架構和存儲系統。例如用于分布式計算的MapReduce計算架構、Spark計算架構,用于大規模資料協同工作的分布式檔案存儲HDFS等。

4)資料了解與提取:大資料的多樣性展現在多個方面。在結構方面,對大資料分析很多情況下處理的資料并非傳統的結構化資料,也包括多模态的半結構和非結構化資料;在語義方面,大資料的語義也有着多樣性,同一含義有着多樣的表達,同樣的表達在不同的語境下也有着不同的含義。要對具有多樣性的大資料進行有效分析,需要對資料進行深入的了解,并從結構多樣、語義多樣的資料中提取出可以直接進行分析的資料。這方面的技術包括自然語言處理、資料抽取等。自然語言處理是研究人與計算機互動的語言問題的一門學科。處理自然語言的關鍵是要讓計算機“了解”自然語言,是以自然語言處理又叫作自然語言了解(Natural Language Understanding,NLU),也稱為計算語言學,它是人工智能(Artificial Intelligence,AI)的核心課題之一。資訊抽取 (information extraction)是把非結構化資料中包含的資訊進行結構化處理,變成統一的組織形式。

5)統計分析:統計分析是指運用統計方法及與分析對象有關的知識,從定量與定性的結合上進行的研究活動。它是繼統計設計、統計調查、統計整理之後的一項十分重要的工作,是在前幾個階段工作的基礎上通過分析達到對研究對象更為深刻的認識。它又是在一定的選題下,針對分析方案的設計、資料的搜集和整理而展開的研究活動。系統、完善的資料是統計分析的必要條件。統計分析技術包括假設檢驗、顯著性檢驗、差異分析、相關分析、T檢驗、方差分析、卡方分析、偏相關分析、距離分析、回歸分析、簡單回歸分析、多元回歸分析、逐漸回歸、回歸預測與殘差分析、嶺回歸、邏輯回歸分析、曲線估計、因子分析、聚類分析、主成分分析、因子分析、快速聚類法與聚類法、判别分析、對應分析、多元對應分析(最優尺度分析)、bootstrap技術等。

6)資料挖掘:資料挖掘指的是從大量資料中通過算法搜尋隐藏于其中的資訊的過程,包括分類(classification)、估計(estimation)、預測(prediction)、相關性分組或關聯規則(affinity grouping or association rule)、聚類(clustering)、描述和可視化(cescription and visualization)、複雜資料類型挖掘(text、Web、圖形圖像、視訊、音頻等)。與前面統計和分析過程不同的是,資料挖掘一般沒有什麼預先設定好的主題,主要是在現有資料上進行基于各種算法的計算,進而起到預測的效果,實作一些進階别資料分析的需求。例如,阿裡雲的數加産品擁有一系列機器學習工具,可基于海量資料實作對使用者行為、行業走勢、天氣、交通的預測,産品還內建了阿裡巴巴核心算法庫,包括特征工程、大規模機器學習、深度學習等。

7)資料可視化:資料可視化是關于資料視覺表現形式的科學技術研究。對于大資料而言,由于其規模、高速和多樣性,使用者通過直接浏覽來了解資料,因而,将資料進行可視化,将其表示成為人能夠直接讀取的形式,顯得非常重要。目前,針對資料可視化已經提出了許多方法,這些方法根據其可視化的原理可以劃分為基于幾何的技術、面向像素的技術、基于圖示的技術、基于層次的技術、基于圖像的技術和分布式技術等;根據資料類型可以分為文本可視化、網絡(圖)可視化、時空資料可視化、多元資料可視化等。

資料可視化應用包括報表類工具(如我們熟知的Excel)、BI分析工具以及專業的資料可視化工具等。阿裡雲2016年釋出的BI報表産品,3分鐘即可完成海量資料的分析報告,産品支援多種雲資料源,提供近20種可視化效果。

大資料分析不是簡單的資料分析的延伸。大資料規模大、更新速度快、來源多樣等性質為大資料分析帶來了一系列挑戰。

1)可擴充性:由于大資料的特點之一是“規模大”,利用大規模資料可以發現諸多新知識,因而大資料分析需要考慮的首要任務之一就是使得分析算法能夠支援大規模資料,在大規模資料上能夠在應用所要求的時間限制内得到結果。

2)可用性:大資料分析的結果應用到實際中的前提是分析結果的可用,這裡“可用”有兩個方面的含義:一方面,需要結果具有高品質,如結果完整、符合現實的語義限制等;另一方面,需要結果的形式适用于實際的應用。對結果可用性的要求為大資料分析算法帶來了挑戰,所謂“垃圾進垃圾出”,高品質的分析結果需要高品質的資料;結果形式的高可用性需要高可用分析模型的設計。

3)領域知識的結合:大資料分析通常和具體領域密切結合,因而大資料分析的過程很自然地需要和領域知識相結合。這為大資料分析方法的設計帶來了挑戰:一方面,領域知識具有的多樣性以及領域知識的結合導緻相應大資料分析方法的多樣性,需要與領域相适應的大資料分析方法;另一方面,對領域知識提出了新的要求,需要領域知識的内容和表示适用于大資料分析的過程。

4)結果的檢驗:有一些應用需要高可靠性的分析結果,否則會帶來災難性的後果。因而,大資料分析結果需要經過一定檢驗才可以真正應用。結果的檢驗需要對大資料分析結果需求的模組化和檢驗的有效實作。