- 大數據金融與征信
- 何平平 車云月
- 149字
- 2019-11-22 15:26:09
第2章 大數據相關技術
本章目標
● 掌握大數據處理流程:數據采集、預處理、存儲、挖掘和解釋
● 掌握大數據的3種來源:核心數據、外圍數據、常規渠道數據
● 掌握大數據的主要架構
● 掌握數據挖掘常用方法
本章簡介
本章從大數據處理流程、數據來源、大數據生態圈及主要架構、數據挖掘的主要方法幾個方面來介紹大數據的相關技術。
2.1 大數據處理流程
大數據的處理流程歸納為:首先利用多種輕型數據庫收集海量數據,對不同來源的數據進行預處理后,整合存儲到大型數據庫中;然后根據企業或個人目的和需求,運用合適的數據挖掘技術提取有益的知識;最后利用恰當的方式將結果展現給終端用戶。具體包括:數據采集、數據預處理、數據存儲、數據挖掘及數據解釋這5個步驟,如圖2.1所示。

圖2.1 大數據的處理流程
2.1.1 數據采集
大數據的采集是大數據處理過程中的第一步,它是數據分析和挖掘的基礎。大數據的采集是指在確定用戶目標的基礎上,對該范圍內的所有結構化、半結構化、非結構化數據進行采集的過程。采集的數據大部分是瞬時值,還包括某時段內的特征值。大數據的主要來源有商業數據、互聯網數據、傳感器數據。針對不同來源的數據,具有不同的采集方法。主要的大數據采集方法有系統日志采集方法、網絡數據采集方法、其他數據采集方法。
1.系統日志采集方法
大多數互聯網企業都有自己的海量數據采集工具,常用于系統日志采集,如Scribe、Flume、Chukwa、Kafka等。Scribe是 Facebook開源的日志收集系統,能夠從各種日志源收集日志,存儲到一個中央存儲系統中,以便于進行集中統計分析和處理;Chukwa屬于Hadoop系列產品,是一個大型的分布式系統監測數據的收集系統,提供了很多模塊以支持Hadoop集群分析;Flume是cloudera的開源日志系統,能夠有效地收集匯總和移動大量的實時日志數據。這些工具均采用分布式架構,能滿足每秒數百 MB的日志數據采集和傳輸需求。
2.網絡數據采集方法
網絡數據采集是指利用互聯網搜索引擎技術從網站抓取數據信息。目前,網絡數據的采集基本上是利用垂直搜索引擎技術的網絡爬蟲或數據采集機器人、分詞系統、任務與索引系統等技術進行綜合運用而完成。該方法可以將非結構化數據從網頁中抽取出來,將其存儲為統一的本地數據文件,并以結構化的方式存儲。它支持圖片、音頻、視頻等文件或附件的采集,附件與正文可以自動關聯。除了網絡中包含的內容之外,對于網絡流量的采集可以使用DPI或DFI等帶寬管理技術進行處理。
3.其他數據采集方法
對于企業生產經營數據或學科研究數據等保密性要求較高的數據,可以通過與企業或研究機構合作,使用特定系統接口等相關方式采集數據。
在大數據的采集過程中,同一網站同一時間可能會有很多用戶訪問和操作。例如,火車票售票網站和淘寶,它們并發的訪問量在峰值時超過了上百萬,并發數十分高。因此,需要在采集端部署大量數據庫才能支撐。
2.1.2 數據預處理
由于第一步收集得到的數據是原始數據,存在著不完整、不一致的問題,無法直接存儲到數據庫中進行數據挖掘。因此,在將來自前端的數據導入一個集中的大型數據庫或者分布式存儲集群前,需要對大數據進行預處理,這樣不但能夠節約大量的空間和時間,還能得到更好的數據挖掘結果。大數據預處理包括對數據進行清理、集成、變換和歸約4個過程。
1.數據清理
數據清理是數據準備過程中最乏味也是最關鍵的一步。其目的是填補缺失的數據、平滑噪聲數據、刪除冗余數據、糾正錯誤數據、清除異常數據,將原始的數據格式進行標準化。
2.數據集成
數據集成是將多個數據源中的數據結合起來并統一存儲,建立數據倉庫,以更好地解決數據的分布性和異構性問題。數據集成技術的關鍵是數據高速緩存器。擁有一個包含目標計劃、源—目標映射、數據獲取、分級抽取、錯誤恢復和安全性轉換的數據高速緩存器,可以大大減少直接訪問后端系統和進行復雜實時集成的需求。
3.數據變換
數據變換是采用線性或非線性的數學變換方法將多維數據壓縮成較少維數的數據,消除它們在時間、空間、屬性、精度等特征表現方面的差異。數據變換可用相當少的變量捕獲原始數據的最大變化,具體變換方法的選擇可根據實際數據的屬性特點而定,常見的數據變換方法有數據平滑、數據聚焦、數據規范化等。
4.數據歸約
數據歸約是指在對數據挖掘任務和數據本身內容理解的基礎上尋找依賴于發現目標的數據的有用特征,以縮減數據規模,從而在盡可能保持數據原貌的前提下,最大限度地精簡數據量。數據歸約主要有兩個途徑:屬性選擇和數據采樣,分別針對原始數據集中的屬性和記錄。數據歸約技術可以用來得到數據集的歸約表示,它雖然小,但仍然大致保持原始數據的完整性。這樣,在歸約后的數據集上挖掘將更有效,并產生相同(或幾乎相同)的分析結果。數據歸約的類型主要有特征歸約、樣本歸約和特征值歸約。
2.1.3 數據存儲
大數據種類繁多,數據結構化程度不同,傳統的結構化數據庫無法適應大數據的存儲要求。下面介紹3種典型的大數據存儲方案:分布式文件系統、分布式數據庫和云存儲。
1.分布式文件系統
分布式文件系統是指文件系統管理的物理存儲資源不一定直接連接在本地節點上,而是通過計算機網絡與節點相連,眾多的節點組成一個文件系統網絡;每個節點可以分布在不同的地點,通過網絡進行節點間的通信和數據傳輸。常見的分布式文件系統有 GFS、HDFS、Lustre、Ceph等,它們各自適用于不同的領域,其中 GFS和HDFS最具有代表性。GFS是Google公司設計的專用文件系統,主要用于存儲海量搜索數據,處理大文件。HDFS是Hadoop分布式文件系統,它是一種被設計成適合運行在通用硬件上的分布式文件系統,具有高容錯性的特點。
2.分布式數據庫
分布式數據庫是利用網絡將物理上分布的多個數據存儲單元連接起來組成的邏輯數據庫,其基本思想是將集中式數據庫中的數據,分散存儲到多個數據存儲節點上,并通過網絡節點連接起來,以獲取更大的存儲容量和更高的并發訪問量。與傳統的集中式數據庫相比較,分布式數據庫具有高擴展性、高并發性、高可用性以及更高的數據訪問速度。近年來,隨著數據量的高速增長,傳統的關系型數據庫開始從集中式模型向分布式架構發展,從集中式存儲走向分布式存儲,從集中式計算走向分布式計算。
3.云存儲
云存儲是一種以數據存儲和管理為核心的云計算系統,它是指利用集群應用、分布式文件和網絡技術系統等功能,通過應用軟件協同網絡中大量的各種不同類型的存儲設備,共同建設一個具有數據存儲和業務訪問功能的系統,以保證數據的安全性,節約存儲空間。互聯網技術的發展是實現云存儲的基本條件。通過互聯網技術,云存儲才能實現數據、文檔、圖片、音頻、視頻等內容的存儲和共享。云存儲系統結構主要由存儲層、基礎管理層、應用接口層、訪問層4個部分構成。
2.1.4 數據挖掘
數據挖掘是指根據業務的需求和目的,運用合適的工具軟件和數據挖掘方法對數據倉庫中的數據信息進行處理,尋找出特定的數據規律或數據模式,得出有價值的信息和知識。根據信息存儲格式,可以把數據挖掘的對象分為關系數據庫、面向對象數據庫、數據倉庫、文本數據源、多媒體數據庫、空間數據庫、時態數據庫、異質數據庫以及Internet等。數據挖掘常用的工具軟件有:Intelligent Miner、SPSS、SAS、WEKA、Matlab、R語言、Python等。數據挖掘的任務是從數據中發現模式,按照數據挖掘的實際作用數據挖掘任務可分為關聯分析、聚類分析、分類、回歸、預測、序列和偏差分析。
2.1.5 數據解釋
數據解釋是一個面向用戶的過程,它是指將大數據挖掘及分析結果在顯示終端以友好、形象、易于理解的形式呈現給用戶。傳統的數據解釋方法是以文本形式輸出結果或者直接在電腦終端上顯示結果。大數據分析的結果一般是數據量巨大且關系復雜的結果,傳統的分析結果展示方法已基本不可行。現階段,主要是利用可視化技術、人機交互、數據起源等新的方法將結果展示給用戶,幫助用戶更加清晰地了解數據處理后的結果,為用戶提供決策信息的支持。目前,大部分企業已經引進數據可視化技術和人機交互技術。
1.數據可視化技術
數據可視化技術主要是通過圖形化方法進行清晰、有效的數據傳遞。其基本思想是使用單個圖元元素表示數據庫中的每一個數據項,大量的數據集組成數據圖像,并以多維數據的形式表示數據的各個屬性值。運用可視化技術就可以將數據結果轉化為靜態或者動態的圖形展示給用戶,通過交互手段抽取或者集成數據能在畫面中動態地顯示改變的結果。這樣,用戶就可以從不同的維度觀察數據,對數據進行更深入的觀察和分析。可視化技術可以分為5類,包括幾何技術、圖標技術、圖形技術、分層技術、混合技術。基于不同的需求可以采取不同的可視化技術,也可以通過多種技術手段來展示數據處理結果。例如,電力網絡中電力的傳輸,為直觀地反映各個城市的電力需求狀況,可以利用基于圖標技術,用不同的顏色標明圖中各個城市的電力負載情況。
2.人機交互技術
人機交互技術是指通過系統輸入、輸出設備,以有效的方式實現人與系統之間信息交換的技術。其中,系統可以是各類機器、計算機和軟件。用戶界面或人機界面是人機交互所依托的介質和對話接口,通常包括硬件和軟件系統。人機交互技術是一種雙向的信息傳遞過程,既可以由用戶向系統輸入信息,也可以由系統向用戶反饋信息。通過人機交互技術,用戶只需要通過輸入設備給系統輸入有關信息、提示、請示等,系統就會輸出或通過顯示設備提供相關信息、回答問題等。人機交互技術能夠使得大數據分析的數據結果更好地被解釋給用戶。這種交互式的數據分析過程可以引導用戶逐步地進行分析,使得用戶在得到結果的同時能夠更好地理解分析結果的由來。與此類似的還有數據起源技術,通過該技術可以幫助用戶追溯整個數據分析的過程,從而有助于用戶理解結果。