大數據技術體系發展至今,不斷充實完善,與互聯網、物聯網、人工智能等其他信息通信技術融合交匯,現已較為成熟。圍繞數據資源的全生命周期過程** ,大數據基礎技術包含大數據采集技術、大數據預處理技術、大數據存儲及計算技術、大數據分析技術等。
大數據采集
大數據采集是大數據生命周期的第一個環節。隨著各類技術和應用的發展,數據來源多種多樣,除了傳統的關系型數據庫外,還包括眾多非結構化數據庫,以及互聯網、物聯網等等。數據類型也是越發豐富,包括原有的結構化數據,更多的還是半結構化數據和非結構化數據。按照數據來源不同,大數據采集技術和方法也存在較大差異,下面我們按照數據庫數據采集、網絡數據采集、物聯網數據采集分類說明。
1.數據庫數據采集
數據庫數據采集因數據庫類型不同以及其中存儲數據類型是結構化還是非結構化而有所不同。
針對傳統的關系型數據庫,一般采用ETL(數據抽取、轉換和加載)工具、SQL編碼、ETL工具與SQL編碼結合三種方式。ETL工具經過多年的發展,已經形成了相對成熟的產品體系,尤其是針對傳統關系型數據庫,典型代表包括:Oracle的OWB、IBM的Datastage、Microsoft的DTS、Informatica等。借助ETL工具可以實現數據庫數據的快速采集及預處理,屏蔽復雜的編碼任務,可提高速度,降低難度,但是缺乏靈活性。通過SQL編碼方式實現數據庫數據采集,相對使用ETL工具更加靈活,可以提高數據采集及預處理的效率,但是編碼復雜,對技術要求比較高。ETL工具與SQL編碼相結合可以綜合前兩種方法的優點,極大提高數據采集及預處理的速度和效率。
針對非結構化數據庫采集以及不同類型數據庫之間的數據傳遞,目前用的比較多的是一些開源項目提供的ETL工具, 典型代表包括:Sqoop、Kettle和Talend等,專為大數據而設計,可兼顧離線和實時數據采集,可以實現主流非結構化數據庫(如HDFS、HBase及其他主流NoSQL數據庫)與傳統關系型數據庫(如MySQL、Oracle、PostgreSQL等)之間的數據雙向傳遞。
相對來說,數據庫數據價值密度高,主要是通過日志文件、系統接口函數等方式采集,采集技術規范,可用工具較多,面向不同類型數據庫的統一采集技術將成為未來的重要發展趨勢。
2.網絡數據采集
網絡數據采集根據采集的數據類型又可以分為互聯網內容數據采集和網絡日志采集兩類。
互聯網內容數據采集主要是利用網絡爬蟲技術和網站公開的應用編程接口(API,Application Programming Interface)等方式, 輔以分詞系統、任務與索引系統綜合運用實現從網站上獲取內容數據的過程。 這種方式可將互聯網上半結構化數據、非結構化數據從網頁中提取出來,并以結構化的方式將其存儲為統一的本地數據文件,支持圖片、音頻、視頻等文件或附件的采集以及自動關聯。網絡爬蟲是一種按照一定規則,自動抓取互聯網內容的程序或者腳本。網絡爬蟲技術最早主要運用在搜索引擎中,互聯網搜索引擎與網頁持有者之間通過Robots協議約定哪些信息可以被爬取,哪些信息不該被爬取。
網絡日志采集目前用的比較多的是開源日志采集系統, 典型代表包括:Flume、Scribe、Logstash、Fluentd等。Flume是Cloudera貢獻給Apache的一個開源日志采集系統項目,具有高可用性、高可靠性和分布式的特點,可以實現海量日志的實時動態采集、聚合和傳輸。Scribe是Facebook的開源日志采集系統項目,具有可擴展性和高容錯的特點,可以實現日志的分布式采集和統一處理。Logstash部署使用相對簡單,更加注重日志數據的預處理,可以為后續日志解析做好鋪墊。Fluentd的部署與Flume比較相似,擴展性非常好,應用也相當廣泛。
3.物聯網數據采集
無論是消費物聯網、產業物聯網,還是智慧城市物聯網,可能涉及RFID電子標簽、定位裝置、紅外感應裝置、激光雷達以及多種傳感器等裝置, 可以說物聯網終端設備的作用就是采集物聯網數據,可能涉及對聲音、光照、熱度、電流、壓力、位置、生物特征等等各類數據的采集。 物聯網數據涉及范圍廣闊,數據相對分散,數據類型差異巨大,數據采集方法和采集手段也存在較大差異。
大數據預處理
大數據分析與挖掘需要的數據往往是通過多個渠道采集的多種類型的數據,通過上述大數據采集技術采集到的數據往往存在數據冗余、數據缺值、數據沖突等數據質量問題,需要通過大數據預處理技術提高數據質量,使數據更符合分析挖掘需要,以保證大數據分析的正確性和有效性,獲得高質量的分析挖掘結果。 大數據預處理技術可以對采集到的原始數據進行清洗、填補、平滑、合并、規格化以及一致性檢查等操作,將雜亂無章的原始數據轉化為相對單一且便于處理的結構類型,為后期的大數據分析挖掘奠定基礎。 大數據預處理主要包括:數據清理、數據集成、數據轉換以及數據規約四大部分。
1.數據清理
數據清理主要是通過檢測數據中存在冗余、錯誤、不一致等問題,利用各種清洗技術去噪聲數據,形成一致性數據集合,包括清除重復數據、填充缺失數據、消除噪聲數據等。 清除重復數據一般采用相似度計算等統計分析方法。針對缺失數據處理有兩種方式,一種是忽略不完整數據即清除缺失數據,另外一種是通過統計學方法、分類或聚類方法填充缺失數據確保數據可用性。在實際應用中,數據采集過程中還會因為多種原因產生大量的噪聲數據(在合理的數據域之外),如果不加處理,會造成后續分析挖掘結果不準確、不可靠。常用的消除噪聲數據的方法包括分箱、聚類、回歸等統計學和數學方法。
主要的數據清洗工具包括前述Sqoop、Kettle和Talend等開源ETL工具,以及Apache Camel、Apache Kafka、Apatar、Heka和Scriptella等開源ETL工具。此外Potter’s Wheel也應用較多,此款數據清理工具交互性強,還集成了偏差檢測和數據變換功能。
2.數據集成
數據集成是指將來源于多個數據源的異構數據合并存放到一個一致的數據庫中。 這一過程主要涉及模式匹配、數據冗余、數據值沖突的檢測與處理,主要工具仍是上述提到的開源ETL工具。模式匹配主要用于發現并映射兩個或多個異構數據源之間的屬性對應關系,樸素貝葉斯、stacking等機器學習算法在模式匹配中應用較為廣泛。數據冗余可能來源于數據屬性命名的不一致,可以利用皮爾遜積矩相關系數(Pearson product-moment correlation coefficient)來衡量數據屬性命名的一致性,絕對值越大表明兩者之間相關性越強。數據值沖突主要表現為來源不同的同一實體具有不同的數據值,針對數據值沖突問題有時需要輔以人工確定規則加以處理。
3.數據變換
數據變換就是處理采集上來的數據中存在的不一致的過程,包括數據名稱、顆粒度、規則、數據格式、計量單位等的變換,也包括對新增數據字段進行組合、分割等變換。 數據變換實際上也包含了數據清晰的相關工作,需要根據業務規則對不一致數據進行清洗,以保證后續分析結果的準確性。數據變換的主要目的在于將數據轉換后適合分析挖掘的形式,選用何種數據變換方法取決于大數據分析和挖掘算法。常用變換方法包括: 函數變換,使用數學函數對每個屬性值進行映射;對數據進行規范化,按比例縮放數據的屬性值,盡量落入較小的特定區間。規范化既有助于各類分類、聚類算法的實施,又避免了對度量單位的過度依賴,同時可規避權重不平衡問題。
4.數據規約
數據歸約是指在盡可能保持數據原貌的前提下,尋找最有用特征以縮減數據規模,最大限度精簡數據,涉及的技術和方法主要包括高維數據降維處理方法(維歸約)、實例規約、離散化技術,以及不平衡學習等機器學習算法。 數據規約技術可以用來得到數據集的規約表示,使得數據集變小,但同時仍然近于保持原數據的完整性,可以在保證分析挖掘準確性的前提下提高分析挖掘的效率。目前基于海量數據的數據歸約技術已經成為大數據預處理的重要問題之一。
大數據存儲計算
大數據存儲與計算技術是整個大數據系統的基礎。當前的大數據系統架構主要有兩種: 一種是MPP數據庫架構,另一種是Hadoop體系的分層架構。 這兩種架構各有優勢和相應的適用場景。另外,隨著光纖網絡通信技術的發展,大數據系統架構正在向存儲與計算分離的架構和云化架構方發展。
1.MPP
MPP(Massively Parallel Processing,大規模并行處理)架構。 MPP架構是將多個處理節點通過網絡連接起來,每個節點是一臺獨立的機器,節點內的處理單元獨占自己的資源, 包括內存、硬盤、IO等,也就是每個節點內的CPU不能訪問另一個節點的內存,MPP架構服務器需要通過軟件實現復雜的調度機制以及并行處理過程。重點面向行業大數據,采用Shared Nothing架構,通過列存儲、粗粒度索引等多項大數據處理技術,再結合MPP架構高效的分布式計算模式,完成對分析類應用的支撐,運行環境多為低成本PC Server,具有高性能和高擴展性的特點,在企業分析類應用領域獲得極其廣泛的應用。
這類MPP產品可以有效支撐PB級別的結構化數據分析,這是傳統數據庫技術無法勝任的。對于企業新一代的數據倉庫和結構化數據分析,目前最佳選擇是MPP數據庫。
2.Hadoop
Hadoop是一個由Apache基金會所開發的分布式系統基礎架構。 用戶可以在不了解分布式底層細節的情況下,開發分布式程序。充分利用集群的威力進行高速運算和存儲。具有可靠、高效、可伸縮的特點。Hadoop的核心是HDFS和MapReduce。
HDFS(Hadoop分布式文件系統),是Hadoop體系中數據存儲管理的基礎。 它是一個高度容錯的系統,能檢測和應對硬件故障,用于在低成本的通用硬件上運行。HDFS簡化了文件的一致性模型,通過流式數據訪問,提供高吞吐量應用程序數據訪問功能,適合帶有大型數據集的應用程序。它提供了一次寫入多次讀取的機制,數據以塊的形式,同時分布在集群不同物理機器上。
MapReduce(分布式計算框架)是一種分布式計算模型,用以進行大數據量的計算。 它屏蔽了分布式計算框架細節,將計算抽象成map和reduce兩部分,其中Map對數據集上的獨立元素進行指定的操作,生成鍵-值對形式中間結果。Reduce則對中間結果中相同“鍵”的所有“值”進行規約,以得到最終結果。MapReduce非常適合在大量計算機組成的分布式并行環境里進行數據處理。
圍繞Hadoop衍生出相關的大數據技術,應對傳統關系型數據庫較難處理的數據和場景,例如針對非結構化數據的存儲和計算等,充分利用Hadoop開源的優勢,伴隨相關技術的不斷進步,其應用場景也將逐步擴大,目前最為典型的應用場景就是通過擴展和封裝Hadoop來實現對互聯網大數據存儲、分析的支撐。這里面有幾十種NoSQL技術,也在進一步的細分。對于非結構、半結構化數據處理、復雜的ETL流程、復雜的數據挖掘和計算模型,Hadoop平臺更擅長。 目前來說主流的選擇就是分布式架構,而在分布式架構系統當中,Hadoop可以說是經過考驗的比較成熟且穩定的大數據平臺系統, 因此很多企業大數據平臺,都是基于Hadoop來搭建的。
大數據分析挖掘
大數據分析需要從紛繁復雜的數據中發現規律提取新的知識,是大數據價值挖掘的關鍵。數據分析主要有兩條技術路線:一是憑借先驗知識人工建立數學模型來分析數據;二是通過建立人工智能系統,使用大量樣本數據進行訓練,讓機器代替人工獲得從數據中提取知識的能力。** 傳統數據挖掘對象多是結構化、單一對象的小數據集,挖掘更側重根據先驗知識預先人工建立模型,然后依據既定模型進行分析。對于非結構化、多源異構的大數據集的分析,往往缺乏先驗知識,很難建立顯式的數學模型,這就需要發展更加智能的數據挖掘技術。
1.傳統分析
數據挖掘的主要過程是從數據庫中提取數據,然后通過ETL組織成適合分析挖掘算法的寬表,然后使用數據挖掘軟件進行挖掘。 傳統的數據挖掘軟件一般只支持單機小規模數據處理。由于這種限制,傳統的數據分析挖掘通常采用抽樣方法來減少數據分析的規模。
數據挖掘的計算復雜性和靈活性遠遠超過前兩類要求。首先,由于數據挖掘問題的開放性,數據挖掘將涉及大量衍生變量計算,導致數據預處理計算的復雜性;其次,許多數據挖掘算法本身更復雜,計算量非常大,特別是大量的機器學習算法,是迭代計算,需要通過多次迭代,如K-means聚類算法、Pagerank算法等。在機器學習中,可細分為歸納學習方法(決策樹、規則歸納)等?;诶訉W習、遺傳算法等。統計方法可細分為回歸分析(多回歸、自回歸)等。判斷分析(貝葉斯判斷、費歇爾判斷、非參數判斷)等。聚類分析(系統聚類、動態聚類)等。探索性分析(主要分析、相關分析)等。
2.智能分析
與以前的眾多數據分析技術相比,人工智能技術立足于神經網絡,同時發展出多層神經網絡,從而可以進行深度機器學習。 與以往傳統的算法相比,這一算法并無多余的假設前提(比如線性建模需要假設數據之間的線性關系),而是完全利用輸入的數據自行模擬和構建相應的模型結構。 這一算法特點決定了它更為靈活的且可以根據不同的訓練數據而擁有自優化的能力。
大數據技術將與人工智能技術更緊密地結合,讓計算系統具備對數據的理解、推理、發現和決策能力,從而能從數據中獲取更準確、更深層次的知識,挖掘數據背后的價值。 隨著人工智能的發展,在海量數據中挖掘有用信息并形成知識將成為可能,機器系統將逐步獲得認知能力,這推動了認知計算的發展。認知計算是人工智能不斷發展的產物,包括自然語言處理、語音識別、計算機視覺、機器學習、深度學習、機器人技術等。只要人們認識到大數據和分析學之間的緊密聯系,就會發現認知計算和分析學一樣,都是大數據分析不可或缺的,認知計算的重要性將越來越受到人們的認可。
本文部分原載于《中國金融科技運行報告》
-
互聯網
+關注
關注
54文章
11105瀏覽量
103012 -
物聯網
+關注
關注
2903文章
44269瀏覽量
371231 -
人工智能
+關注
關注
1791文章
46853瀏覽量
237544 -
大數據技術
+關注
關注
0文章
36瀏覽量
5114
發布評論請先 登錄
相關推薦
評論