近年來,大數據來勢洶洶,滲透到各行各業(yè),帶來了一場翻天覆地的變革。讓人們越發(fā)認識到,比掌握龐大的數據信息更重要的是掌握對含有意義的數據進行專業(yè)化處理的技術。
大數據關鍵技術涵蓋從數據存儲、處理、應用等多方面的技術,根據大數據的處理過程,可將其分為大數據采集、大數據預處理、大數據存儲及管理、大數據分析及挖掘等環(huán)節(jié)。
本文針對大數據的關鍵技術進行梳理,以饗讀者。
Part 1.大數據采集
數據采集是大數據生命周期的第一個環(huán)節(jié),它通過RFID射頻數據、傳感器數據、社交網絡數據、移動互聯網數據等方式獲得各種類型的結構化、半結構化及非結構化的海量數據。由于可能有成千上萬的用戶同時進行并發(fā)訪問和操作,因此,必須采用專門針對大數據的采集方法,其主要包括以下三種:
A.數據庫采集
一些企業(yè)會使用傳統的關系型數據庫MySQL和Oracle等來存儲數據。談到比較多的工具有Sqoop和結構化數據庫間的ETL工具,當然當前對于開源的Kettle和Talend本身也集成了大數據集成內容,可以實現和hdfs,hbase和主流Nosq數據庫之間的數據同步和集成。
B.網絡數據采集
網絡數據采集主要是借助網絡爬蟲或網站公開API等方式,從網站上獲取數據信息的過程。通過這種途徑可將網絡上非結構化數據、半結構化數據從網頁中提取出來,并以結構化的方式將其存儲為統一的本地數據文件。
C.文件采集
對于文件的采集,談的比較多的還是flume進行實時的文件采集和處理,當然對于ELK(ElasTIcsearch、Logstash、Kibana三者的組合)雖然是處理日志,但是也有基于模板配置的完整增量實時文件采集實現。如果是僅僅是做日志的采集和分析,那么用ELK解決方案就完全夠用的。
Part 2.大數據預處理
數據的世界是龐大而復雜的,也會有殘缺的,有虛假的,有過時的。想要獲得高質量的分析挖掘結果,就必須在數據準備階段提高數據的質量。大數據預處理可以對采集到的原始數據進行清洗、填補、平滑、合并、規(guī)格化以及檢查一致性等,將那些雜亂無章的數據轉化為相對單一且便于處理的構型,為后期的數據分析奠定基礎。數據預處理主要包括:數據清理、數據集成、數據轉換以及數據規(guī)約四大部分。
A.數據清理
數據清理主要包含遺漏值處理(缺少感興趣的屬性)、噪音數據處理(數據中存在著錯誤、或偏離期望值的數據)、不一致數據處理。主要的清洗工具是ETL(ExtracTIon/TransformaTIon/Loading)和Potter’s Wheel。
遺漏數據可用全局常量、屬性均值、可能值填充或者直接忽略該數據等方法處理;噪音數據可用分箱(對原始數據進行分組,然后對每一組內的數據進行平滑處理)、聚類、計算機人工檢查和回歸等方法去除噪音;對于不一致數據則可進行手動更正。
B.數據集成
數據集成是指將多個數據源中的數據合并存放到一個一致的數據存儲庫中。這一過程著重要解決三個問題:模式匹配、數據冗余、數據值沖突檢測與處理。
來自多個數據集合的數據會因為命名的差異導致對應的實體名稱不同,通常涉及實體識別需要利用元數據來進行區(qū)分,對來源不同的實體進行匹配。數據冗余可能來源于數據屬性命名的不一致,在解決過程中對于數值屬性可以利用皮爾遜積矩Ra,b來衡量,絕對值越大表明兩者之間相關性越強。數據值沖突問題,主要表現為來源不同的統一實體具有不同的數據值。
C.數據變換
數據轉換就是處理抽取上來的數據中存在的不一致的過程。數據轉換一般包括兩類:
第一類,數據名稱及格式的統一,即數據粒度轉換、商務規(guī)則計算以及統一的命名、數據格式、計量單位等;第二類,數據倉庫中存在源數據庫中可能不存在的數據,因此需要進行字段的組合、分割或計算。數據轉換實際上還包含了數據清洗的工作,需要根據業(yè)務規(guī)則對異常數據進行清洗,保證后續(xù)分析結果的準確性。
D. 數據規(guī)約
數據歸約是指在盡可能保持數據原貌的前提下,最大限度地精簡數據量,主要包括:數據方聚集、維規(guī)約、數據壓縮、數值規(guī)約和概念分層等。數據規(guī)約技術可以用來得到數據集的規(guī)約表示,使得數據集變小,但同時仍然近于保持原數據的完整性。也就是說,在規(guī)約后的數據集上進行挖掘,依然能夠得到與使用原數據集近乎相同的分析結果。