◆詹鵬偉 謝小姣
?
大數據系統及關鍵技術與工具綜述
◆詹鵬偉 謝小姣
(廣州大學數學與信息科學學院 廣東 510006)
人類已經進入大數據時代,大數據正潛移默化地影響著我們的生活。本文先總結了大數據的特點以及大數據技術在國內外的發展情況,然后從大數據生態中的數據產生、數據采集、數據存儲、數據處理、數據分析、數據可視化以及數據的安全性與隱私保護著手,介紹了各環節的關鍵目的與意義以及所用到的技術與工具,對大數據工程具有指導意義。
大數據;數據挖掘;隱私保護
在過去的數年間,隨著計算機硬件的不斷發展,計算機所擁有的算力不斷增強,存儲資源容量的不斷增大,智能化程度的不斷提高且價格不斷地下降,以及物聯網、移動互聯網和云計算等技術的飛速發展和大規模應用,使得數據量出現了爆發式的增長,我們逐步邁入了GB時代、TB時代、PB時代,并正處于向 EB時代躍進的過程中。據IBM的研究,在人類歷史中,有大約90%的數據都是在過去兩年產生的,且人類正在產生的數據量正在以指數式增長,每過2年數據量就會翻一番。人類已經進入大數據時代,在大數據時代下許多傳統的科學門類都會發生巨大的甚至是本質上的變化和發展,進而影響人類的價值體系。
大數據技術并不是指某一個具體的技術,而是指包括數據挖掘、預測分析、統計分析、機器學習、自然語言處理、并行計算、數據存儲、流式計算等一系列技術的綜合運用。從各類文獻中我們可以總結出大數據具有的5V特征: Volume(數據量大),Velocity(處理速度需求高),Variety(數據類別多),Veracity(數據是真實的),Value(數據需要提純后才有價值)。
由于大數據本身具有的特點,我們原本所使用的傳統的處理和分析手段與工具都有可能會失效。因此,為了把握大數據時代的機遇,大數據技術亟待發展。
谷歌的工程師于2003年就先后發表了有關GFS、MapReduce和BigTable等核心技術的論文,并迅速吸引了Facebook等公司的注意力,促生了現在運用最廣泛的大數據框架之一——Hadoop。聯合國于2009年就啟動了“Global Pulse”計劃,希望能夠通過大數據推動落后地區的發展。2012年,美國白宮發布了《大數據研究和發展計劃》,計劃發展涉及衛生部、能源部、國防部等部門在內的155個項目種類。牛津大學成立了運用大數據的醫藥衛生科研中心,促進數據分析在醫療行業的發展,幫助藥物研發,減少開發成本,有望給英國醫學研究和醫療行業帶來巨大的變革。
大數據技術在國內的發展比國外稍晚。2013年,我國多位院士聯合上書希望國家大力發展大數據技術。在“十二五”期間,我國的科技部就設立了與大數據有關的專項,且“973計劃”、“863計劃”等自然科學基金都設立了針對大數據的計劃和項目。近幾年我國的阿里、騰訊、百度等一系列互聯網企業如火如荼的發展大數據技術并將其運用于自己的產品。為大力發展大數據產業,國家統計局也逐步開放了統計數據。國內高校紛紛開設了與大數據、人工智能有關的專業與課程。2017年12月,習近平在中共中央政治局第二次集體學習時提出“實施國家大數據戰略加快建設數字中國”,代表著我國對大數據的重視上升到了一個新的高度。
大數據的生態流程與傳統的數據利用過程是相符的,在大數據生態中,可將過程分為七個步驟:數據的產生與采集、數據存儲、數據處理、數據分析、數據可視化以及數據的安全性隱私性保證。本文將從大數據的生態流程的6個環節入手,綜述各環節的目的與意義,以及所用到的核心技術。
我們所處的是一個數據爆炸的時代,海量的數據正從各個領域中時刻生成著。數據主要來源于三個領域:
(1)商業領域。數據的使用對商業領域的發展起到了關鍵的推動作用,每天都有上千億條數據被存入各大商業公司的數據庫中,利用這些數據,商業公司可以更精準地實現廣告定位、內容推送等內容。
(2)網絡領域。由于移動終端和互聯網的迅猛發展,網絡領域產生的數據占了相當大的比重。如Google和百度搜索引擎產生的數據,Facebook、Twitter等社交網絡產生的數據以及像YouTube所產生的視頻流數據都是不可忽視的主要數據來源。
(3)科學領域。因為科學研究的需要,科學領域中也產生了大量的數據。如有光學觀測、天文觀測產生的照片、視頻數據以及生物學中用到的基因數據等都可能達到PB級別。
數據采集則指的是在各種數據源生產之后,將數據收集到一個地方的過程。目前常見的采集方法有三種:
(1)網絡爬蟲采集。網絡爬蟲可以在互聯網上以極高的效率搜集數據,且其具有高度自動化,可分布式部署等優點。一個策略良好的爬蟲可以很好地模擬人類的行為,防止服務器的封殺,并源源不斷地獲取數據。
(2)日志文件記錄。在任何終端上都有專門的模塊來搜集記錄系統活動以及用戶操作的日志文件。日志是由系統產生的,廣泛采用的搜集方法之一。
(3)傳感器感知。傳感器可以將溫度、濕度、距離、壓力、電流量等物理環境中真實存在的變量轉化為數字信息存儲。
如何在成千上萬的服務器組成的集群中存儲PB級別的數據是大數據存儲中一大難題。分布式文件系統、內存KV數據庫以及列式數據庫都是解決這個難題的較好方法,各大公司都推出了自己的方案與產品來組織海量數據。表1為常見的大數據存儲系統及其類別與特征。
表1 常見的大數據存儲系統及其類別與特征

類別方案名稱特點 分布式文件系統GFS提供了海量的非結構化信息存儲平臺,可實現數據冗余備份、自動均衡負載、失效服務器檢測等功能 HDFS提供高吞吐量的順序讀/寫訪問,由Hadoop集成,不適合大量隨機讀和存儲大量小文件的的場景 HayStack適合存儲讀多寫少的文件 內存KV數據庫RAMCloud讀寫效率高,在千臺服務器下可以在5~10納秒鐘完成數據讀取,成本低 Redis支持多種數據類型與復雜的數據結構,具有很強的單機讀寫效率 CouchBase工作于集群環境下,能夠對寫操作以極高的效率完成 列式存儲庫BigTable針對結構化或半結構化數據,能夠實現PB級別的快速讀寫操作 PNUTS采取了弱一致性模型,具有較強的拓展性、高可用性以及強容錯性 Spanner可在全球范圍內部署,拓展性強,容災能力強,采用半結構化數據模型定義,使用類SQL語言
不同的數據存儲系統功能側重不同,在明確需求的情況下選擇合適的系統才能最大地發揮系統的性能。
大數據的數據處理包括預處理和作為計算任務的處理。預處理的目的是整合異構數據并將臟數據轉變為能夠直接利用的干凈數據,而在計算任務中的處理則是為了實現用戶的查詢請求,快速準確地返回結果?,F代大數據處理系統的發展趨向的是針對于特定領域的發展,并不要求一種處理系統能夠在所有的情況下都有較好的表現。根據應用場景的不同,計算任務中的處理又分為批處理、流式計算、交互式數據分析和增量計算等。
(1)數據預處理
由于數據的來源多種多樣,所產生的數據也可能因為外界的干擾而產生缺失以及冗余等問題。為了把質量參差不齊、異構的數據轉化為分析系統能夠使用的數據,數據預處理十分有必要。
數據預處理主要包括3個方面:
①數據集成。將不同數據源的數據集中在一起,再經過提取、變換和裝載操作,實現選擇數據、把數據轉化為標準格式以及導入基礎設施。
②數據清洗。因為數據的質量參差不齊,可能存在著不夠完整、不夠準確的問題,必須經過錯誤類型定義、錯誤實例標識、改正錯誤、記錄錯誤、修改數據的完整過程才能將臟數據提取為可用性高的干凈數據。
③冗余消除。數據的重復也是常出現的問題,冗余的數據會浪費存儲空間并增加無必要的開銷??梢岳萌哂鄼z驗以及數據壓縮的方法來實現冗余消除。
(2)批處理
批處理是大數據計算中最常見的一類任務,其目標是實現數據的高吞吐量、系統的靈活水平拓展、數據的大規模處理、系統的強容錯性以及應用表達的便捷性和靈活性等。常用的批處理計算模型有MapReduce、DAG等。
(3)流式計算
流式計算側重的是處理的時效性,其要求計算能夠在很短的時延內完成,且有較強的系統容錯性、系統擴展能力和靈活的應用邏輯表達能力,常應用于搜索引擎、廣告精準推送、社交信息流處理、入侵檢測以及作弊識別等領域。常用的流式計算模型有S4、Storm、MillWheel、Samza、Hadoop online、MUPD8等,其中Storm和MillWheel是功能較為完善的,其他系統多少都存在著數據丟失、實時性不佳的問題。
(4)交互式數據分析
交互式數據分析可讓分析人員便捷地使用查詢與分析系統,彌補了其他處理系統易用性差、邏輯較為底層的問題。常見的交互式分析模型有Pig、Hive、Dermel、PowerDrill、Tajo、Drill、Shark等。
(5)增量計算
增量計算是一種較為節約資源的計算方式,其每次只對新增的內容以及其影響到的舊條目的結果進行重新計算,原先的結果大部分可以重用,不必每次更新都從頭計算。常用的增量計算系統有Percolator、CBP、Kineograph、DryaInc、Incoop以及IncMR等,其中Percolate和Kineograph可實現準實時增量計算。
數據分析是在大數據生態中最重要的一個環節,是可以直接將數據轉化為現實價值的環節。分析之后的數據可以幫助發現潛藏的社會規律,還可以幫助人們做出更加科學的決斷。包括數據挖掘、統計分析、自然語言處理、機器學習在內的多種方法都可以完成數據的分析。
數據挖掘就是通過特定的方法來發覺隱藏在大量數據中的信息的過程,是一種與數學、統計學、信息學、計算機科學緊密聯系的綜合性的技術。常用的方法有分類分析、序列分析、預測分析、關聯分析以及聚類分析等。常用的分析工具有Python、MATLAB、SPSS、SGI MineSe等,利用這些工具可以幫助我們方便地構建數據挖掘的模型,站在高層的邏輯上實現數據價值的挖掘。
統計分析指的是運用統計學的方法,從定性與定量兩個方面,用于對變量間出現的關系進行分析處理。常用的方法有描述統計、假設檢驗、信度分析、相關分析、方差分析、回歸分析、主成分分析、因子分析等。較為流行的工具有R語言、Python等。
自然語言處理是計算機科學與語言學的處理技術,能夠使用算法來對人類的語言進行分析,其關鍵技術有詞法分析、句法分析、語義分析和文本生成等,其可用于對關鍵文本的過濾,對文本情感的挖掘以及欺詐檢測、機器翻譯等。國內常見的工具有OpenNLP、FudanNLP和LTP,它們對中文的分析支持較好。
機器學習可以分為監督學習與無監督學習兩部分,監督學習指使用者在已知部分預測結果的情況下,讓機器使用帶標簽的數據進行學習,從而根據已有數據構建模型以對未知標簽的數據進行預測,而無監督學習則不需要有帶有標簽的數據,只需有原始數據即可。監督學習常用于解決分類、回歸問題,而無監督學習用于解決聚類、關聯分析、降維等問題。常用的監督學習算法有如 k-NN 算法、Decision Tree 算法、Naive Bayes算法、SVM 算法、AdaBoost算法,無監督模型有k-Means算法、Spectral Clustering算法、PCA算法等。
數據可視化是在數據的分析完成之后研究如何以更符合人類感知的方式展示分析所得到的結果的一門涉及計算機圖形學、統計學以及心理學的綜合性學科。其目的是為了讓人們更加輕松地明白數據中所蘊含的規律與信息。數據可視化又可以分為3個部分:
科學可視化主要面對專業性較強的自然學科,如物理、氣象等,為的是尋找其中的科學規律與異常。
信息可視化處理的主要是非結構化的抽象數據,如日志文件、社交網絡數據等,為的是在有限空間中能以更加直觀的方式展示大量抽象數據所包含的信息。
可視分析學以可視交互界面為研究對象,為的是以交互式分析界面促進分析推理。
各大公司都十分重視數據可視化的發展,而其中走在前沿的公司是 Tableau Software,其代表產品是Tableau Desktop、 Tableau Server、Tableau Reader等。在數據可視化技術的幫助下,即使是不懂技術的行業知識專家也能輕易地對數據進行可視化處理并進行可交互的即時數據分析展示。還有一些開源的可視化工具如 R語言、matplotlib等應用的也很廣泛。
在大數據環境下,傳統的信息安全技術如信息加密、模糊處理、匿名傳輸等方法都效果較差。
以典型的分布式系統架構Hadoop為例,最初版本的Hadoop未能實現服務器的安全認證、授權、加密傳輸與存儲機制,雖然在升級之后能夠實現基于ACL的訪問控制和基于Kerberos的認證機制,但是如認證開銷大、易出現單點故障且只適用于單級認證的問題卻無法解決,給數據安全帶來了極大的隱患和風險。
對于在大數據存儲過程中常用的非關系型數據庫NoSQL,其發展不如傳統的關系型數據庫SQL完善,在數據安全方面并沒有很好的訪問控制機制與隱私管理機制。由于NoSQL安全機制本身的缺陷,當發生數據安全問題的時候將很難定位到安全性薄弱的地方。同時由于NoSQL的數據可能是不同系統、程序、活動產生的,這也為數據安全機制的構建設下了難題。
隱私泄露也是大數據環境下的一大問題。如現在國內的電商都普遍便存在“大數據殺熟”的現象,導致同樣的商品老用戶看到的價格比新用戶要貴,這正是因為人們訪問所產生的數據并不是單純地被服務器儲存了,而是會被服務器用于分析個人的消費傾向、消費能力等一系列與我們個人隱私有關的信息。服務器會根據分析得到的信息為用戶畫像,劃分用戶的類別,并有針對性地修改推送給用戶的內容,從而使自己的利潤最大化。這種現象是在用戶毫無察覺的情況下發生的,在機器學習方法的輔助下,用戶會覺得查看的商品越來越符合自己的心意,但是卻無從得知價格是否合理,隱私問題堪憂。
互聯網的飛速發展致使數據規模呈現爆炸式的增長,大數據時代已經到來。大數據正從多個方面影響著人們的生活,新興的大數據技術將會變革許多傳統的行業。本文分析了大數據技術的發展歷程與研究現狀并在此基礎上從大數據生態中的數據產生、數據采集、數據存儲、數據處理、數據分析、數據可視化以及數據的安全性與隱私保護入手,介紹了各環節的關鍵目的與意義以及所用到的技術與工具。大數據技術的發展仍有很大的進步空間,為了更好地利用大數據為社會創造更多的價值,我們需要不斷的探索。
[1]涂子沛.大數據[J].學習月刊, 2013.
[2]孟小峰,慈祥.大數據管理:概念, 技術與挑戰[J].計算機研究與發展,2013.
[3]李紀舟,葉小新,丁云峰.美軍大數據技術發展現狀及對其信息作戰的影響[J].外軍信息戰,2013.
[4]Victor Mayer - Schonberger,Kenneth Cukier.大數據時代[M].杭州:浙江人民出版社,2013.
[5]夏巖,趙慧英,賈軍帥.數據挖掘發展綜述[J].通信與計算技術, 2009.
[6]陳為,沈則潛,陶煜波等.大數據叢書:數據可視化[M].北京:電子工業出版社,2013.
[7]馮登國,張敏,李昊.大數據安全與隱私保護[J].計算機學報,2014.