◆詹鵬偉 謝小姣
?
大數(shù)據(jù)系統(tǒng)及關鍵技術與工具綜述
◆詹鵬偉 謝小姣
(廣州大學數(shù)學與信息科學學院 廣東 510006)
人類已經(jīng)進入大數(shù)據(jù)時代,大數(shù)據(jù)正潛移默化地影響著我們的生活。本文先總結了大數(shù)據(jù)的特點以及大數(shù)據(jù)技術在國內(nèi)外的發(fā)展情況,然后從大數(shù)據(jù)生態(tài)中的數(shù)據(jù)產(chǎn)生、數(shù)據(jù)采集、數(shù)據(jù)存儲、數(shù)據(jù)處理、數(shù)據(jù)分析、數(shù)據(jù)可視化以及數(shù)據(jù)的安全性與隱私保護著手,介紹了各環(huán)節(jié)的關鍵目的與意義以及所用到的技術與工具,對大數(shù)據(jù)工程具有指導意義。
大數(shù)據(jù);數(shù)據(jù)挖掘;隱私保護
在過去的數(shù)年間,隨著計算機硬件的不斷發(fā)展,計算機所擁有的算力不斷增強,存儲資源容量的不斷增大,智能化程度的不斷提高且價格不斷地下降,以及物聯(lián)網(wǎng)、移動互聯(lián)網(wǎng)和云計算等技術的飛速發(fā)展和大規(guī)模應用,使得數(shù)據(jù)量出現(xiàn)了爆發(fā)式的增長,我們逐步邁入了GB時代、TB時代、PB時代,并正處于向 EB時代躍進的過程中。據(jù)IBM的研究,在人類歷史中,有大約90%的數(shù)據(jù)都是在過去兩年產(chǎn)生的,且人類正在產(chǎn)生的數(shù)據(jù)量正在以指數(shù)式增長,每過2年數(shù)據(jù)量就會翻一番。人類已經(jīng)進入大數(shù)據(jù)時代,在大數(shù)據(jù)時代下許多傳統(tǒng)的科學門類都會發(fā)生巨大的甚至是本質(zhì)上的變化和發(fā)展,進而影響人類的價值體系。
大數(shù)據(jù)技術并不是指某一個具體的技術,而是指包括數(shù)據(jù)挖掘、預測分析、統(tǒng)計分析、機器學習、自然語言處理、并行計算、數(shù)據(jù)存儲、流式計算等一系列技術的綜合運用。從各類文獻中我們可以總結出大數(shù)據(jù)具有的5V特征: Volume(數(shù)據(jù)量大),Velocity(處理速度需求高),Variety(數(shù)據(jù)類別多),Veracity(數(shù)據(jù)是真實的),Value(數(shù)據(jù)需要提純后才有價值)。
由于大數(shù)據(jù)本身具有的特點,我們原本所使用的傳統(tǒng)的處理和分析手段與工具都有可能會失效。因此,為了把握大數(shù)據(jù)時代的機遇,大數(shù)據(jù)技術亟待發(fā)展。
谷歌的工程師于2003年就先后發(fā)表了有關GFS、MapReduce和BigTable等核心技術的論文,并迅速吸引了Facebook等公司的注意力,促生了現(xiàn)在運用最廣泛的大數(shù)據(jù)框架之一——Hadoop。聯(lián)合國于2009年就啟動了“Global Pulse”計劃,希望能夠通過大數(shù)據(jù)推動落后地區(qū)的發(fā)展。2012年,美國白宮發(fā)布了《大數(shù)據(jù)研究和發(fā)展計劃》,計劃發(fā)展涉及衛(wèi)生部、能源部、國防部等部門在內(nèi)的155個項目種類。牛津大學成立了運用大數(shù)據(jù)的醫(yī)藥衛(wèi)生科研中心,促進數(shù)據(jù)分析在醫(yī)療行業(yè)的發(fā)展,幫助藥物研發(fā),減少開發(fā)成本,有望給英國醫(yī)學研究和醫(yī)療行業(yè)帶來巨大的變革。
大數(shù)據(jù)技術在國內(nèi)的發(fā)展比國外稍晚。2013年,我國多位院士聯(lián)合上書希望國家大力發(fā)展大數(shù)據(jù)技術。在“十二五”期間,我國的科技部就設立了與大數(shù)據(jù)有關的專項,且“973計劃”、“863計劃”等自然科學基金都設立了針對大數(shù)據(jù)的計劃和項目。近幾年我國的阿里、騰訊、百度等一系列互聯(lián)網(wǎng)企業(yè)如火如荼的發(fā)展大數(shù)據(jù)技術并將其運用于自己的產(chǎn)品。為大力發(fā)展大數(shù)據(jù)產(chǎn)業(yè),國家統(tǒng)計局也逐步開放了統(tǒng)計數(shù)據(jù)。國內(nèi)高校紛紛開設了與大數(shù)據(jù)、人工智能有關的專業(yè)與課程。2017年12月,習近平在中共中央政治局第二次集體學習時提出“實施國家大數(shù)據(jù)戰(zhàn)略加快建設數(shù)字中國”,代表著我國對大數(shù)據(jù)的重視上升到了一個新的高度。
大數(shù)據(jù)的生態(tài)流程與傳統(tǒng)的數(shù)據(jù)利用過程是相符的,在大數(shù)據(jù)生態(tài)中,可將過程分為七個步驟:數(shù)據(jù)的產(chǎn)生與采集、數(shù)據(jù)存儲、數(shù)據(jù)處理、數(shù)據(jù)分析、數(shù)據(jù)可視化以及數(shù)據(jù)的安全性隱私性保證。本文將從大數(shù)據(jù)的生態(tài)流程的6個環(huán)節(jié)入手,綜述各環(huán)節(jié)的目的與意義,以及所用到的核心技術。
我們所處的是一個數(shù)據(jù)爆炸的時代,海量的數(shù)據(jù)正從各個領域中時刻生成著。數(shù)據(jù)主要來源于三個領域:
(1)商業(yè)領域。數(shù)據(jù)的使用對商業(yè)領域的發(fā)展起到了關鍵的推動作用,每天都有上千億條數(shù)據(jù)被存入各大商業(yè)公司的數(shù)據(jù)庫中,利用這些數(shù)據(jù),商業(yè)公司可以更精準地實現(xiàn)廣告定位、內(nèi)容推送等內(nèi)容。
(2)網(wǎng)絡領域。由于移動終端和互聯(lián)網(wǎng)的迅猛發(fā)展,網(wǎng)絡領域產(chǎn)生的數(shù)據(jù)占了相當大的比重。如Google和百度搜索引擎產(chǎn)生的數(shù)據(jù),F(xiàn)acebook、Twitter等社交網(wǎng)絡產(chǎn)生的數(shù)據(jù)以及像YouTube所產(chǎn)生的視頻流數(shù)據(jù)都是不可忽視的主要數(shù)據(jù)來源。
(3)科學領域。因為科學研究的需要,科學領域中也產(chǎn)生了大量的數(shù)據(jù)。如有光學觀測、天文觀測產(chǎn)生的照片、視頻數(shù)據(jù)以及生物學中用到的基因數(shù)據(jù)等都可能達到PB級別。
數(shù)據(jù)采集則指的是在各種數(shù)據(jù)源生產(chǎn)之后,將數(shù)據(jù)收集到一個地方的過程。目前常見的采集方法有三種:
(1)網(wǎng)絡爬蟲采集。網(wǎng)絡爬蟲可以在互聯(lián)網(wǎng)上以極高的效率搜集數(shù)據(jù),且其具有高度自動化,可分布式部署等優(yōu)點。一個策略良好的爬蟲可以很好地模擬人類的行為,防止服務器的封殺,并源源不斷地獲取數(shù)據(jù)。
(2)日志文件記錄。在任何終端上都有專門的模塊來搜集記錄系統(tǒng)活動以及用戶操作的日志文件。日志是由系統(tǒng)產(chǎn)生的,廣泛采用的搜集方法之一。
(3)傳感器感知。傳感器可以將溫度、濕度、距離、壓力、電流量等物理環(huán)境中真實存在的變量轉化為數(shù)字信息存儲。
如何在成千上萬的服務器組成的集群中存儲PB級別的數(shù)據(jù)是大數(shù)據(jù)存儲中一大難題。分布式文件系統(tǒng)、內(nèi)存KV數(shù)據(jù)庫以及列式數(shù)據(jù)庫都是解決這個難題的較好方法,各大公司都推出了自己的方案與產(chǎn)品來組織海量數(shù)據(jù)。表1為常見的大數(shù)據(jù)存儲系統(tǒng)及其類別與特征。
表1 常見的大數(shù)據(jù)存儲系統(tǒng)及其類別與特征
類別方案名稱特點 分布式文件系統(tǒng)GFS提供了海量的非結構化信息存儲平臺,可實現(xiàn)數(shù)據(jù)冗余備份、自動均衡負載、失效服務器檢測等功能 HDFS提供高吞吐量的順序讀/寫訪問,由Hadoop集成,不適合大量隨機讀和存儲大量小文件的的場景 HayStack適合存儲讀多寫少的文件 內(nèi)存KV數(shù)據(jù)庫RAMCloud讀寫效率高,在千臺服務器下可以在5~10納秒鐘完成數(shù)據(jù)讀取,成本低 Redis支持多種數(shù)據(jù)類型與復雜的數(shù)據(jù)結構,具有很強的單機讀寫效率 CouchBase工作于集群環(huán)境下,能夠對寫操作以極高的效率完成 列式存儲庫BigTable針對結構化或半結構化數(shù)據(jù),能夠實現(xiàn)PB級別的快速讀寫操作 PNUTS采取了弱一致性模型,具有較強的拓展性、高可用性以及強容錯性 Spanner可在全球范圍內(nèi)部署,拓展性強,容災能力強,采用半結構化數(shù)據(jù)模型定義,使用類SQL語言
不同的數(shù)據(jù)存儲系統(tǒng)功能側重不同,在明確需求的情況下選擇合適的系統(tǒng)才能最大地發(fā)揮系統(tǒng)的性能。
大數(shù)據(jù)的數(shù)據(jù)處理包括預處理和作為計算任務的處理。預處理的目的是整合異構數(shù)據(jù)并將臟數(shù)據(jù)轉變?yōu)槟軌蛑苯永玫母蓛魯?shù)據(jù),而在計算任務中的處理則是為了實現(xiàn)用戶的查詢請求,快速準確地返回結果?,F(xiàn)代大數(shù)據(jù)處理系統(tǒng)的發(fā)展趨向的是針對于特定領域的發(fā)展,并不要求一種處理系統(tǒng)能夠在所有的情況下都有較好的表現(xiàn)。根據(jù)應用場景的不同,計算任務中的處理又分為批處理、流式計算、交互式數(shù)據(jù)分析和增量計算等。
(1)數(shù)據(jù)預處理
由于數(shù)據(jù)的來源多種多樣,所產(chǎn)生的數(shù)據(jù)也可能因為外界的干擾而產(chǎn)生缺失以及冗余等問題。為了把質(zhì)量參差不齊、異構的數(shù)據(jù)轉化為分析系統(tǒng)能夠使用的數(shù)據(jù),數(shù)據(jù)預處理十分有必要。
數(shù)據(jù)預處理主要包括3個方面:
①數(shù)據(jù)集成。將不同數(shù)據(jù)源的數(shù)據(jù)集中在一起,再經(jīng)過提取、變換和裝載操作,實現(xiàn)選擇數(shù)據(jù)、把數(shù)據(jù)轉化為標準格式以及導入基礎設施。
②數(shù)據(jù)清洗。因為數(shù)據(jù)的質(zhì)量參差不齊,可能存在著不夠完整、不夠準確的問題,必須經(jīng)過錯誤類型定義、錯誤實例標識、改正錯誤、記錄錯誤、修改數(shù)據(jù)的完整過程才能將臟數(shù)據(jù)提取為可用性高的干凈數(shù)據(jù)。
③冗余消除。數(shù)據(jù)的重復也是常出現(xiàn)的問題,冗余的數(shù)據(jù)會浪費存儲空間并增加無必要的開銷??梢岳萌哂鄼z驗以及數(shù)據(jù)壓縮的方法來實現(xiàn)冗余消除。
(2)批處理
批處理是大數(shù)據(jù)計算中最常見的一類任務,其目標是實現(xiàn)數(shù)據(jù)的高吞吐量、系統(tǒng)的靈活水平拓展、數(shù)據(jù)的大規(guī)模處理、系統(tǒng)的強容錯性以及應用表達的便捷性和靈活性等。常用的批處理計算模型有MapReduce、DAG等。
(3)流式計算
流式計算側重的是處理的時效性,其要求計算能夠在很短的時延內(nèi)完成,且有較強的系統(tǒng)容錯性、系統(tǒng)擴展能力和靈活的應用邏輯表達能力,常應用于搜索引擎、廣告精準推送、社交信息流處理、入侵檢測以及作弊識別等領域。常用的流式計算模型有S4、Storm、MillWheel、Samza、Hadoop online、MUPD8等,其中Storm和MillWheel是功能較為完善的,其他系統(tǒng)多少都存在著數(shù)據(jù)丟失、實時性不佳的問題。
(4)交互式數(shù)據(jù)分析
交互式數(shù)據(jù)分析可讓分析人員便捷地使用查詢與分析系統(tǒng),彌補了其他處理系統(tǒng)易用性差、邏輯較為底層的問題。常見的交互式分析模型有Pig、Hive、Dermel、PowerDrill、Tajo、Drill、Shark等。
(5)增量計算
增量計算是一種較為節(jié)約資源的計算方式,其每次只對新增的內(nèi)容以及其影響到的舊條目的結果進行重新計算,原先的結果大部分可以重用,不必每次更新都從頭計算。常用的增量計算系統(tǒng)有Percolator、CBP、Kineograph、DryaInc、Incoop以及IncMR等,其中Percolate和Kineograph可實現(xiàn)準實時增量計算。
數(shù)據(jù)分析是在大數(shù)據(jù)生態(tài)中最重要的一個環(huán)節(jié),是可以直接將數(shù)據(jù)轉化為現(xiàn)實價值的環(huán)節(jié)。分析之后的數(shù)據(jù)可以幫助發(fā)現(xiàn)潛藏的社會規(guī)律,還可以幫助人們做出更加科學的決斷。包括數(shù)據(jù)挖掘、統(tǒng)計分析、自然語言處理、機器學習在內(nèi)的多種方法都可以完成數(shù)據(jù)的分析。
數(shù)據(jù)挖掘就是通過特定的方法來發(fā)覺隱藏在大量數(shù)據(jù)中的信息的過程,是一種與數(shù)學、統(tǒng)計學、信息學、計算機科學緊密聯(lián)系的綜合性的技術。常用的方法有分類分析、序列分析、預測分析、關聯(lián)分析以及聚類分析等。常用的分析工具有Python、MATLAB、SPSS、SGI MineSe等,利用這些工具可以幫助我們方便地構建數(shù)據(jù)挖掘的模型,站在高層的邏輯上實現(xiàn)數(shù)據(jù)價值的挖掘。
統(tǒng)計分析指的是運用統(tǒng)計學的方法,從定性與定量兩個方面,用于對變量間出現(xiàn)的關系進行分析處理。常用的方法有描述統(tǒng)計、假設檢驗、信度分析、相關分析、方差分析、回歸分析、主成分分析、因子分析等。較為流行的工具有R語言、Python等。
自然語言處理是計算機科學與語言學的處理技術,能夠使用算法來對人類的語言進行分析,其關鍵技術有詞法分析、句法分析、語義分析和文本生成等,其可用于對關鍵文本的過濾,對文本情感的挖掘以及欺詐檢測、機器翻譯等。國內(nèi)常見的工具有OpenNLP、FudanNLP和LTP,它們對中文的分析支持較好。
機器學習可以分為監(jiān)督學習與無監(jiān)督學習兩部分,監(jiān)督學習指使用者在已知部分預測結果的情況下,讓機器使用帶標簽的數(shù)據(jù)進行學習,從而根據(jù)已有數(shù)據(jù)構建模型以對未知標簽的數(shù)據(jù)進行預測,而無監(jiān)督學習則不需要有帶有標簽的數(shù)據(jù),只需有原始數(shù)據(jù)即可。監(jiān)督學習常用于解決分類、回歸問題,而無監(jiān)督學習用于解決聚類、關聯(lián)分析、降維等問題。常用的監(jiān)督學習算法有如 k-NN 算法、Decision Tree 算法、Naive Bayes算法、SVM 算法、AdaBoost算法,無監(jiān)督模型有k-Means算法、Spectral Clustering算法、PCA算法等。
數(shù)據(jù)可視化是在數(shù)據(jù)的分析完成之后研究如何以更符合人類感知的方式展示分析所得到的結果的一門涉及計算機圖形學、統(tǒng)計學以及心理學的綜合性學科。其目的是為了讓人們更加輕松地明白數(shù)據(jù)中所蘊含的規(guī)律與信息。數(shù)據(jù)可視化又可以分為3個部分:
科學可視化主要面對專業(yè)性較強的自然學科,如物理、氣象等,為的是尋找其中的科學規(guī)律與異常。
信息可視化處理的主要是非結構化的抽象數(shù)據(jù),如日志文件、社交網(wǎng)絡數(shù)據(jù)等,為的是在有限空間中能以更加直觀的方式展示大量抽象數(shù)據(jù)所包含的信息。
可視分析學以可視交互界面為研究對象,為的是以交互式分析界面促進分析推理。
各大公司都十分重視數(shù)據(jù)可視化的發(fā)展,而其中走在前沿的公司是 Tableau Software,其代表產(chǎn)品是Tableau Desktop、 Tableau Server、Tableau Reader等。在數(shù)據(jù)可視化技術的幫助下,即使是不懂技術的行業(yè)知識專家也能輕易地對數(shù)據(jù)進行可視化處理并進行可交互的即時數(shù)據(jù)分析展示。還有一些開源的可視化工具如 R語言、matplotlib等應用的也很廣泛。
在大數(shù)據(jù)環(huán)境下,傳統(tǒng)的信息安全技術如信息加密、模糊處理、匿名傳輸?shù)确椒ǘ夹Ч^差。
以典型的分布式系統(tǒng)架構Hadoop為例,最初版本的Hadoop未能實現(xiàn)服務器的安全認證、授權、加密傳輸與存儲機制,雖然在升級之后能夠實現(xiàn)基于ACL的訪問控制和基于Kerberos的認證機制,但是如認證開銷大、易出現(xiàn)單點故障且只適用于單級認證的問題卻無法解決,給數(shù)據(jù)安全帶來了極大的隱患和風險。
對于在大數(shù)據(jù)存儲過程中常用的非關系型數(shù)據(jù)庫NoSQL,其發(fā)展不如傳統(tǒng)的關系型數(shù)據(jù)庫SQL完善,在數(shù)據(jù)安全方面并沒有很好的訪問控制機制與隱私管理機制。由于NoSQL安全機制本身的缺陷,當發(fā)生數(shù)據(jù)安全問題的時候將很難定位到安全性薄弱的地方。同時由于NoSQL的數(shù)據(jù)可能是不同系統(tǒng)、程序、活動產(chǎn)生的,這也為數(shù)據(jù)安全機制的構建設下了難題。
隱私泄露也是大數(shù)據(jù)環(huán)境下的一大問題。如現(xiàn)在國內(nèi)的電商都普遍便存在“大數(shù)據(jù)殺熟”的現(xiàn)象,導致同樣的商品老用戶看到的價格比新用戶要貴,這正是因為人們訪問所產(chǎn)生的數(shù)據(jù)并不是單純地被服務器儲存了,而是會被服務器用于分析個人的消費傾向、消費能力等一系列與我們個人隱私有關的信息。服務器會根據(jù)分析得到的信息為用戶畫像,劃分用戶的類別,并有針對性地修改推送給用戶的內(nèi)容,從而使自己的利潤最大化。這種現(xiàn)象是在用戶毫無察覺的情況下發(fā)生的,在機器學習方法的輔助下,用戶會覺得查看的商品越來越符合自己的心意,但是卻無從得知價格是否合理,隱私問題堪憂。
互聯(lián)網(wǎng)的飛速發(fā)展致使數(shù)據(jù)規(guī)模呈現(xiàn)爆炸式的增長,大數(shù)據(jù)時代已經(jīng)到來。大數(shù)據(jù)正從多個方面影響著人們的生活,新興的大數(shù)據(jù)技術將會變革許多傳統(tǒng)的行業(yè)。本文分析了大數(shù)據(jù)技術的發(fā)展歷程與研究現(xiàn)狀并在此基礎上從大數(shù)據(jù)生態(tài)中的數(shù)據(jù)產(chǎn)生、數(shù)據(jù)采集、數(shù)據(jù)存儲、數(shù)據(jù)處理、數(shù)據(jù)分析、數(shù)據(jù)可視化以及數(shù)據(jù)的安全性與隱私保護入手,介紹了各環(huán)節(jié)的關鍵目的與意義以及所用到的技術與工具。大數(shù)據(jù)技術的發(fā)展仍有很大的進步空間,為了更好地利用大數(shù)據(jù)為社會創(chuàng)造更多的價值,我們需要不斷的探索。
[1]涂子沛.大數(shù)據(jù)[J].學習月刊, 2013.
[2]孟小峰,慈祥.大數(shù)據(jù)管理:概念, 技術與挑戰(zhàn)[J].計算機研究與發(fā)展,2013.
[3]李紀舟,葉小新,丁云峰.美軍大數(shù)據(jù)技術發(fā)展現(xiàn)狀及對其信息作戰(zhàn)的影響[J].外軍信息戰(zhàn),2013.
[4]Victor Mayer - Schonberger,Kenneth Cukier.大數(shù)據(jù)時代[M].杭州:浙江人民出版社,2013.
[5]夏巖,趙慧英,賈軍帥.數(shù)據(jù)挖掘發(fā)展綜述[J].通信與計算技術, 2009.
[6]陳為,沈則潛,陶煜波等.大數(shù)據(jù)叢書:數(shù)據(jù)可視化[M].北京:電子工業(yè)出版社,2013.
[7]馮登國,張敏,李昊.大數(shù)據(jù)安全與隱私保護[J].計算機學報,2014.