目前,大數(shù)據(jù)領(lǐng)域每年都會涌現(xiàn)出大量新的技術(shù),成為大數(shù)據(jù)獲取、存儲、處理分析或可視化的有效手段。大數(shù)據(jù)技術(shù)能夠?qū)⒋笠?guī)模數(shù)據(jù)中隱藏的信息和知識挖掘出來,為人類社會經(jīng)濟(jì)活動提供依據(jù),提高各個(gè)領(lǐng)域的運(yùn)行效率,甚至整個(gè)社會經(jīng)濟(jì)的集約化程度。
1大數(shù)據(jù)生命周期
底層是基礎(chǔ)設(shè)施,涵蓋計(jì)算資源、內(nèi)存與存儲和網(wǎng)絡(luò)互聯(lián),具體表現(xiàn)為計(jì)算節(jié)點(diǎn)、集群、機(jī)柜和數(shù)據(jù)中心。在此之上是數(shù)據(jù)存儲和管理,包括文件系統(tǒng)、數(shù)據(jù)庫和類似YARN的資源管理系統(tǒng)。然后是計(jì)算處理層,如hadoop、MapReduce和Spark,以及在此之上的各種不同計(jì)算范式,如批處理、流處理和圖計(jì)算等,包括衍生出編程模型的計(jì)算模型,如BSP、GAS 等。數(shù)據(jù)分析和可視化基于計(jì)算處理層。分析包括簡單的查詢分析、流分析以及更復(fù)雜的分析(如機(jī)器學(xué)習(xí)、圖計(jì)算等)。查詢分析多基于表結(jié)構(gòu)和關(guān)系函數(shù),流分析基于數(shù)據(jù)、事件流以及簡單的統(tǒng)計(jì)分析,而復(fù)雜分析則基于更復(fù)雜的數(shù)據(jù)結(jié)構(gòu)與方法,如圖、矩陣、迭代計(jì)算和線性代數(shù)。一般意義的可視化是對分析結(jié)果的展示。但是通過交互式可視化,還可以探索性地提問,使分析獲得新的線索,形成迭代的分析和可視化?;诖笠?guī)模數(shù)據(jù)的實(shí)時(shí)交互可視化分析以及在這個(gè)過程中引入自動化的因素是目前研究的熱點(diǎn)。
有2個(gè)領(lǐng)域垂直打通了上述的各層,需要整體、協(xié)同地看待。一是編程和管理工具,方向是機(jī)器通過學(xué)習(xí)實(shí)現(xiàn)自動最優(yōu)化、盡量無需編程、無需復(fù)雜的配置。另一個(gè)領(lǐng)域是數(shù)據(jù)安全,也是貫穿整個(gè)技術(shù)棧。除了這兩個(gè)領(lǐng)域垂直打通各層,還有一些技術(shù)方向是跨了多層的,例如“內(nèi)存計(jì)算”事實(shí)上覆蓋了整個(gè)技術(shù)棧。
2.大數(shù)據(jù)技術(shù)生態(tài)
大數(shù)據(jù)的基本處理流程與傳統(tǒng)數(shù)據(jù)處理流程并無太大差異,主要區(qū)別在于:由于大數(shù)據(jù)要處理大量、非結(jié)構(gòu)化的數(shù)據(jù),所以在各處理環(huán)節(jié)中都可以采用并行處理。目前,Hadoop、MapReduce和Spark等分布式處理方式已經(jīng)成為大數(shù)據(jù)處理各環(huán)節(jié)的通用處理方法。
3.大數(shù)據(jù)采集與預(yù)處理
在大數(shù)據(jù)的生命周期中,數(shù)據(jù)采集處于第一個(gè)環(huán)節(jié)。根據(jù)MapReduce產(chǎn)生數(shù)據(jù)的應(yīng)用系統(tǒng)分類,大數(shù)據(jù)的采集主要有4種來源:管理信息系統(tǒng)、Web信息系統(tǒng)、物理信息系統(tǒng)、科學(xué)實(shí)驗(yàn)系統(tǒng)。對于不同的數(shù)據(jù)集,可能存在不同的結(jié)構(gòu)和模式,如文件、XML 樹、關(guān)系表等,表現(xiàn)為數(shù)據(jù)的異構(gòu)性。對多個(gè)異構(gòu)的數(shù)據(jù)集,需要做進(jìn)一步集成處理或整合處理,將來自不同數(shù)據(jù)集的數(shù)據(jù)收集、整理、清洗、轉(zhuǎn)換后,生成到一個(gè)新的數(shù)據(jù)集,為后續(xù)查詢和分析處理提供統(tǒng)一的數(shù)據(jù)視圖。針對管理信息系統(tǒng)中異構(gòu)數(shù)據(jù)庫集成技術(shù)、Web 信息系統(tǒng)中的實(shí)體識別技術(shù)和DeepWeb集成技術(shù)、傳感器網(wǎng)絡(luò)數(shù)據(jù)融合技術(shù)已經(jīng)有很多研究工作,取得了較大的進(jìn)展,已經(jīng)推出了多種數(shù)據(jù)清洗和質(zhì)量控制工具,例如,美國SAS公司的Data Flux、美國IBM 公司的Data Stage、美國Informatica 公司的Informatica Power Center。
4.大數(shù)據(jù)存儲與管理
傳統(tǒng)的數(shù)據(jù)存儲和管理以結(jié)構(gòu)化數(shù)據(jù)為主,因此關(guān)系數(shù)據(jù)庫系統(tǒng)(RDBMS)可以一統(tǒng)天下滿足各類應(yīng)用需求。大數(shù)據(jù)往往是半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)為主,結(jié)構(gòu)化數(shù)據(jù)為輔,而且各種大數(shù)據(jù)應(yīng)用通常是對不同類型的數(shù)據(jù)內(nèi)容檢索、交叉比對、深度挖掘與綜合分析。面對這類應(yīng)用需求,傳統(tǒng)數(shù)據(jù)庫無論在技術(shù)上還是功能上都難以為繼。因此,近幾年出現(xiàn)了oldSQL、NoSQL 與NewSQL 并存的局面。總體上,按數(shù)據(jù)類型的不同,大數(shù)據(jù)的存儲和管理采用不同的技術(shù)路線,大致可以分為3類。第1類主要面對的是大規(guī)模的結(jié)構(gòu)化數(shù)據(jù)。針對這類大數(shù)據(jù),通常采用新型數(shù)據(jù)庫集群。它們通過列存儲或行列混合存儲以及粗粒度索引等技術(shù),結(jié)合MPP(Massive Parallel Processing)架構(gòu)高效的分布式計(jì)算模式,實(shí)現(xiàn)對PB 量級數(shù)據(jù)的存儲和管理。這類集群具有高性能和高擴(kuò)展性特點(diǎn),在企業(yè)分析類應(yīng)用領(lǐng)域已獲得廣泛應(yīng)用;第2類主要面對的是半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)。應(yīng)對這類應(yīng)用場景,基于Hadoop開源體系的系統(tǒng)平臺更為擅長。它們通過對Hadoop生態(tài)體系的技術(shù)擴(kuò)展和封裝,實(shí)現(xiàn)對半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)的存儲和管理;第3類面對的是結(jié)構(gòu)化和非結(jié)構(gòu)化混合的大數(shù)據(jù),因此采用MPP 并行數(shù)據(jù)庫集群與Hadoop 集群的混合來實(shí)現(xiàn)對百PB 量級、EB量級數(shù)據(jù)的存儲和管理。一方面,用MPP 來管理計(jì)算高質(zhì)量的結(jié)構(gòu)化數(shù)據(jù),提供強(qiáng)大的SQL和OLTP型服務(wù);另一方面,用Hadoop實(shí)現(xiàn)對半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)的處理,以支持諸如內(nèi)容檢索、深度挖掘與綜合分析等新型應(yīng)用。這類混合模式將是大數(shù)據(jù)存儲和管理未來發(fā)展的趨勢。
5.大數(shù)據(jù)計(jì)算模式與系統(tǒng)
計(jì)算模式的出現(xiàn)有力推動了大數(shù)據(jù)技術(shù)和應(yīng)用的發(fā)展,使其成為目前大數(shù)據(jù)處理最為成功、最廣為接受使用的主流大數(shù)據(jù)計(jì)算模式。然而,現(xiàn)實(shí)世界中的大數(shù)據(jù)處理問題復(fù)雜多樣,難以有一種單一的計(jì)算模式能涵蓋所有不同的大數(shù)據(jù)計(jì)算需求。研究和實(shí)際應(yīng)用中發(fā)現(xiàn),由于MapReduce主要適合于進(jìn)行大數(shù)據(jù)線下批處理,在面向低延遲和具有復(fù)雜數(shù)據(jù)關(guān)系和復(fù)雜計(jì)算的大數(shù)據(jù)問題時(shí)有很大的不適應(yīng)性。因此,近幾年來學(xué)術(shù)界和業(yè)界在不斷研究并推出多種不同的大數(shù)據(jù)計(jì)算模式。
6.大數(shù)據(jù)分析與可視化
在大數(shù)據(jù)時(shí)代,人們迫切希望在由普通機(jī)器組成的大規(guī)模集群上實(shí)現(xiàn)高性能的以機(jī)器學(xué)習(xí)算法為核心的數(shù)據(jù)分析,為實(shí)際業(yè)務(wù)提供服務(wù)和指導(dǎo),進(jìn)而實(shí)現(xiàn)數(shù)據(jù)的最終變現(xiàn)。與傳統(tǒng)的在線聯(lián)機(jī)分析處理OLAP不同,對大數(shù)據(jù)的深度分析主要基于大規(guī)模的機(jī)器學(xué)習(xí)技術(shù),一般而言,機(jī)器學(xué)習(xí)模型的訓(xùn)練過程可以歸結(jié)為最優(yōu)化定義于大規(guī)模訓(xùn)練數(shù)據(jù)上的目標(biāo)函數(shù)并且通過一個(gè)循環(huán)迭代的算法實(shí)現(xiàn),如圖4所示。因而與傳統(tǒng)的OLAP相比較,基于機(jī)器學(xué)習(xí)的大數(shù)據(jù)分析具有自己獨(dú)特的特點(diǎn)。
(1)迭代性:由于用于優(yōu)化問題通常沒有閉式解,因而對模型參數(shù)確定并非一次能夠完成,需要循環(huán)迭代多次逐步逼近最優(yōu)值點(diǎn)。
(2)容錯(cuò)性:機(jī)器學(xué)習(xí)的算法設(shè)計(jì)和模型評價(jià)容忍非最優(yōu)值點(diǎn)的存在,同時(shí)多次迭代的特性也允許在循環(huán)的過程中產(chǎn)生一些錯(cuò)誤,模型的最終收斂不受影響。
(3)參數(shù)收斂的非均勻性:模型中一些參數(shù)經(jīng)過少數(shù)幾輪迭代后便不再改變,而有些參數(shù)則需要很長時(shí)間才能達(dá)到收斂。
這些特點(diǎn)決定了理想的大數(shù)據(jù)分析系統(tǒng)的設(shè)計(jì)和其他計(jì)算系統(tǒng)的設(shè)計(jì)有很大不同,直接應(yīng)用傳統(tǒng)的分布式計(jì)算系統(tǒng)應(yīng)用于大數(shù)據(jù)分析,很大比例的資源都浪費(fèi)在通信、等待、協(xié)調(diào)等非有效的計(jì)算上。
傳統(tǒng)的分布式計(jì)算框架MPI(message passing interface,信息傳遞接口)雖然編程接口靈活功能強(qiáng)大,但由于編程接口復(fù)雜且對容錯(cuò)性支持不高,無法支撐在大規(guī)模數(shù)據(jù)上的復(fù)雜操作,研究人員轉(zhuǎn)而開發(fā)了一系列接口簡單容錯(cuò)性強(qiáng)的分布式計(jì)算框架服務(wù)于大數(shù)據(jù)分析算法,以MapReduce、Spark和參數(shù)服務(wù)器ParameterServer等為代表。
分布式計(jì)算框架MapReduce將對數(shù)據(jù)的處理歸結(jié)為Map和Reduce兩大類操作,從而簡化了編程接口并且提高了系統(tǒng)的容錯(cuò)性。但是MapReduce受制于過于簡化的數(shù)據(jù)操作抽象,而且不支持循環(huán)迭代,因而對復(fù)雜的機(jī)器學(xué)習(xí)算法支持較差,基于MapReduce的分布式機(jī)器學(xué)習(xí)庫Mahout需要將迭代運(yùn)算分解為多個(gè)連續(xù)的Map 和Reduce 操作,通過讀寫HDFS文件方式將上一輪次循環(huán)的運(yùn)算結(jié)果傳入下一輪完成數(shù)據(jù)交換。在此過程中,大量的訓(xùn)練時(shí)間被用于磁盤的讀寫操作,訓(xùn)練效率非常低效。為了解決MapReduce上述問題,Spark 基于RDD 定義了包括Map 和Reduce在內(nèi)的更加豐富的數(shù)據(jù)操作接口。不同于MapReduce 的是Job 中間輸出和結(jié)果可以保存在內(nèi)存中,從而不再需要讀寫HDFS,這些特性使得Spark能更好地適用于數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)等需要迭代的大數(shù)據(jù)分析算法?;赟park實(shí)現(xiàn)的機(jī)器學(xué)習(xí)算法庫MLLIB已經(jīng)顯示出了其相對于Mahout 的優(yōu)勢,在實(shí)際應(yīng)用系統(tǒng)中得到了廣泛的使用。
在大數(shù)據(jù)分析的應(yīng)用過程中,可視化通過交互式視覺表現(xiàn)的方式來幫助人們探索和理解復(fù)雜的數(shù)據(jù)??梢暬c可視化分析能夠迅速和有效地簡化與提煉數(shù)據(jù)流,幫助用戶交互篩選大量的數(shù)據(jù),有助于使用者更快更好地從復(fù)雜數(shù)據(jù)中得到新的發(fā)現(xiàn),成為用戶了解復(fù)雜數(shù)據(jù)、開展深入分析不可或缺的手段。大規(guī)模數(shù)據(jù)的可視化主要是基于并行算法設(shè)計(jì)的技術(shù),合理利用有限的計(jì)算資源,高效地處理和分析特定數(shù)據(jù)集的特性。通常情況下,大規(guī)模數(shù)據(jù)可視化的技術(shù)會結(jié)合多分辨率表示等方法,以獲得足夠的互動性能。在科學(xué)大規(guī)模數(shù)據(jù)的并行可視化工作中,主要涉及數(shù)據(jù)流線化、任務(wù)并行化、管道并行化和數(shù)據(jù)并行化4 種基本技術(shù)。微軟公司在其云計(jì)算平臺Azure 上開發(fā)了大規(guī)模機(jī)器學(xué)習(xí)可視化平臺(Azure Machine Learning),將大數(shù)據(jù)分析任務(wù)形式為有向無環(huán)圖并以數(shù)據(jù)流圖的方式向用戶展示,取得了比較好的效果。在國內(nèi),阿里巴巴旗下的大數(shù)據(jù)分析平臺御膳房也采用了類似的方式,為業(yè)務(wù)人員提供的互動式大數(shù)據(jù)分析平臺。