大數(shù)據(jù)方法論

大數(shù)據(jù)學習交流群:808769635

前段時間有報道稱,有學者質(zhì)疑“大數(shù)據(jù)”理論,也有硅谷公司負責人質(zhì)疑大數(shù)據(jù)應用的效果。結合2011年Gartner關于BI(Business Intelligence)應用70%-80%都失敗的一個調(diào)查結論(這里的fail是夸張的說法,更確切地講應該是沒有達到預期效果),本文就來談談為什么會出現(xiàn)這樣的問題,大數(shù)據(jù)應用落地的瓶頸是什么?為什么大數(shù)據(jù)應用容易失敗?為什么大數(shù)據(jù)應用需要敏捷?敏捷大數(shù)據(jù)方法論又是什么,包括那些關鍵技術,系統(tǒng)架構如何設計等等問題,希望能為業(yè)界大數(shù)據(jù)應用落地提供一點有價值的參考。
1.大數(shù)據(jù)應用落地的主要瓶頸是什么?

大數(shù)據(jù)現(xiàn)象源于我們對未來不確定性的恐懼,和應對軟件在加速吞噬世界(軟件越來越龐雜,操作越來越自動化,數(shù)據(jù)越來越豐富,而大部分人卻對其原理和特性卻知之甚少)這一大背景下的管理失控問題。大數(shù)據(jù)規(guī)律的可預測性創(chuàng)造了一種新的知識體系和管理思維,但分析模型的黑箱和操作的自動化卻削弱了人類對其深層規(guī)律的理解和探索能力,機器的量化能力與人的主觀判斷能力短時間內(nèi)還難以有機融合,大數(shù)據(jù)應用不缺預測模型、計算資源和數(shù)據(jù)科學家,而是缺乏提出正確問題和利用大數(shù)據(jù)工具解決問題的能力,就好比用大炮沒有打到蚊子,我們不能說大炮沒用,而會說這個人的方法搞錯了。

大數(shù)據(jù)分析的核心目標是,面向過去,發(fā)現(xiàn)數(shù)據(jù)規(guī)律,歸納已知;面向未來,挖掘數(shù)據(jù)趨勢,預測未知。從而通過大數(shù)據(jù)分析提高對事物的理解和決策處置能力,最終實現(xiàn)智能化。不管是商業(yè)智能,機器智能,人工智能,還是智能客服,智能問答,智能推薦,智慧醫(yī)療、智慧交通等相關技術和系統(tǒng),其本質(zhì)都是朝著這一目標在演進。隨著云計算平臺和開源大數(shù)據(jù)系統(tǒng)(如Hadoop、Spark、Storm等)的高速發(fā)展,獲得大數(shù)據(jù)基礎設施建設相關技術和支持越來越容易。同時,移動互聯(lián)網(wǎng)和物聯(lián)網(wǎng)技術所具備的全面數(shù)據(jù)采集能力,客觀上促進了大數(shù)據(jù)的積累和爆發(fā)。但是,大數(shù)據(jù)應用要落地,除了需要上述提出正確問題和利用大數(shù)據(jù)工具解決問題的能力之外,個人認為還面臨如下幾個方面的主要瓶頸:

1)IT向DT(Data Technology,DT)技術泛型的轉變,使得傳統(tǒng)硬件和軟件技術架構面臨挑戰(zhàn),大規(guī)模并行計算、量子計算機、深度神經(jīng)網(wǎng)絡芯片、分布式存儲系統(tǒng)、GPU大規(guī)模計算等都是對傳統(tǒng)IT技術架構的顛覆?,F(xiàn)階段各種大數(shù)據(jù)分析相關的開源技術和系統(tǒng)百花齊放,大數(shù)據(jù)技術生態(tài)體系龐雜,技術門檻較高也間接說明了這一點。研究、研發(fā)人員要跟上這一波技術變革還需要時間去消化和積累,特別是學術界和工業(yè)界的結合,對大數(shù)據(jù)應用來講至關重要,深度學習領域的突破就是例證。如何在掌握有限技術的條件下(或受制于核心技術人才的情況下),能快速進行大數(shù)據(jù)應用研究和落地應用,需要從技術選型角度進行深入探討、分析和評估。

2)傳統(tǒng)商業(yè)智能(Business Intelligence, BI)應用的失敗教訓太多,項目周期漫長,考驗客戶耐性,應用投入成本高,最終成果多是昂貴的豪華報表,沒有達到預期效果。另外,傳統(tǒng)數(shù)據(jù)倉庫和數(shù)據(jù)集市架構下,面對海量數(shù)據(jù)的存儲能力、擴展能力、并發(fā)能力弱等問題無法從根本解決。大數(shù)據(jù)分析如何從BI項目中總結失敗教訓和獲得經(jīng)驗,大數(shù)據(jù)應用與傳統(tǒng)BI系統(tǒng)是融合還是代替?企業(yè)大數(shù)據(jù)技術架構如何與發(fā)源于互聯(lián)網(wǎng)巨頭的主流大數(shù)據(jù)技術框架有機統(tǒng)一?也還有很多問題需要深入總結,解決不好就會事倍功半。

3)大數(shù)據(jù)應用的標準化和產(chǎn)品化問題。針對大數(shù)據(jù)的多源異構、動態(tài)性、關聯(lián)性等特點,對大數(shù)據(jù)分析流程和應用進行標準化的管理,對離線分析、在線分析、實時分析、內(nèi)存分析等計算框架的融合處理,對圖像、文本、視頻、音頻、網(wǎng)頁、關系數(shù)據(jù)庫等多源異構數(shù)據(jù)進行跨模態(tài)建模,對大數(shù)據(jù)分析結果的應用效果進行量化與評價。不管是從技術選型角度還是業(yè)務支撐角度,都還有很多問題需要實戰(zhàn)經(jīng)驗的積累和支持,想要一勞永逸地解決不現(xiàn)實。

4)除了前述探討的大數(shù)據(jù)應用面臨的挑戰(zhàn)之外,從大數(shù)據(jù)架構本身的技術角度分析還需要解決如下幾個關鍵問題:高可擴展性,能支持大規(guī)模數(shù)據(jù)增長和大量業(yè)務分析的快速擴展等;高容錯性和穩(wěn)定性,能支持大數(shù)據(jù)分析的失敗情況和進行自動恢復等;高性能和并行支持,能在海量數(shù)據(jù)條件下快速完成多種計算模型和分析處理;多源異構環(huán)境支持,能處理多模態(tài)數(shù)據(jù)和多種分析任務;開放性和共享支持,能提供標準的數(shù)據(jù)和開發(fā)接口,支持數(shù)據(jù)和系統(tǒng)集成;效率和成本的控制,能在有限的時間、人力和財力條件下提高系統(tǒng)性能等,這對大數(shù)據(jù)系統(tǒng)架構的設計提出了較高要求。

5)大數(shù)據(jù)管理思維和開發(fā)、應用實施的脫節(jié),大數(shù)據(jù)強化了定量科學和客觀方法的地位,但事實上,現(xiàn)階段很多企業(yè)領導,包括技術人員對大數(shù)據(jù)的處理和使用仍然是主觀性的,而且面對機器學習的黑箱,對模型的缺陷和適用范疇很難有深入把握,這樣的話通過大數(shù)據(jù)挖掘分析量化的結果也未必更符合客觀事實,大數(shù)據(jù)不等于好數(shù)據(jù),如何切實輔助決策才是關鍵。

再則,大數(shù)據(jù)是非常碎片化的,大數(shù)據(jù)不只是谷歌,亞馬遜,BAT等互聯(lián)網(wǎng)企業(yè),每一個行業(yè)、企業(yè)里面都有它去關注數(shù)據(jù)的痕跡:一條生產(chǎn)線上的實時傳感器數(shù)據(jù),車輛身上的傳感數(shù)據(jù),高鐵設備的運行狀態(tài)數(shù)據(jù),交通部門的監(jiān)控數(shù)據(jù)等等;其次,現(xiàn)在的開源大數(shù)據(jù)系統(tǒng)架構和工具集來源于互聯(lián)網(wǎng)巨頭,這種技術架構不一定適合傳統(tǒng)企業(yè)和政府關聯(lián)機構,因為不同組織機構所擁有的數(shù)據(jù)類型和結構可能大不相同;再次,從大數(shù)據(jù)應用過程和特點來看,數(shù)據(jù)科學的本質(zhì)是迭代,就好比嬰兒的學習一樣,輸入-回應-反饋-學習-再輸入,持續(xù)訓練和學習才會產(chǎn)生智能,大數(shù)據(jù)分析系統(tǒng)是一樣的道理,自適應優(yōu)化和持續(xù)改進是大數(shù)據(jù)系統(tǒng)的必備特征。所以,這就需要大數(shù)據(jù)技術架構具有極強的靈活性、可擴展性,或者說敏捷性。

2.大數(shù)據(jù)應用為什么需要敏捷?

上述五個方面的大數(shù)據(jù)應用瓶頸分析可以看到,大數(shù)據(jù)應用要切實落地并產(chǎn)生應有價值還要較長的路要走,當然這取決于我們的期望,在《企業(yè)大數(shù)據(jù)應用三段論》一文中,有明確的界定,大數(shù)據(jù)應用的效果不能輕易否定,當然也不能太樂觀,關鍵還是看處于那個階段,技術成熟度和設計研發(fā)能力如何等等。為什么大數(shù)據(jù)需要敏捷,或者說我為什么提出敏捷大數(shù)據(jù),主要基于上述大數(shù)據(jù)應用瓶頸的判斷:大數(shù)據(jù)應用落地面臨很多現(xiàn)實問題,首先我們看大數(shù)據(jù)的應用過程和特點(如圖1),大數(shù)據(jù)要完成的是一種將各方面源數(shù)據(jù)(零散的、相關的圍繞某行業(yè)或者某分析主題的數(shù)據(jù))通過ETL組織成為主題數(shù)據(jù),從主題數(shù)據(jù)中提煉信息特征,從特征挖掘中發(fā)現(xiàn)規(guī)律和有價值的知識,就規(guī)律和預測等知識信息形成決策支持并進行應用和追蹤評估,最后反饋回大數(shù)據(jù)系統(tǒng)進行反復驗證、優(yōu)化并持續(xù)迭代的閉環(huán)信息處理過程。

image.png

圖1 大數(shù)據(jù)應用金字塔模型

其次,有沒有通用的大數(shù)據(jù)應用架構和流程?一般來講,不同行業(yè)、不同企業(yè)、不同應用場景,采用的技術架構和分析流程也會有差異;再次,大數(shù)據(jù)應用落地需面對的現(xiàn)實問題眾多,項目周期漫長,考驗客戶耐性,技術生態(tài)龐雜,復合型人才少,一將難求,應用效果如何量化也還沒標準,用戶參與度低,難達預期目標,機器學習數(shù)據(jù)實驗,如何應用于數(shù)據(jù)工程等等問題,對大數(shù)據(jù)分析的系統(tǒng)架構、關鍵技術及應用方法論,提出了較高要求,下面就來看敏捷大數(shù)據(jù)能否解決一些問題。

3.敏捷大數(shù)據(jù)方法論

(1)何為敏捷?

何為敏捷,我們先看幾個概念:

image.png

敏捷開發(fā)(Agile Development),以用戶的需求進化為核心,采用迭代、循序漸進的方法進行軟件開發(fā)。在敏捷開發(fā)中,軟件項目在構建初期被切分成多個子項目,各個子項目的成果都經(jīng)過測試,具備可視、可集成和可運行使用的特征。換言之,就是把一個大項目分為多個相互聯(lián)系,但也可獨立運行的小項目,并分別完成,在此過程中軟件一直處于可使用狀態(tài)。

敏捷管理(Agile Management),敏捷管理是規(guī)劃和指導項目流程的迭代方法,與敏捷軟件開發(fā)一樣,敏捷項目是在叫做迭代的小型部門中完成的。每個迭代都由項目團隊審查和評判,從迭代的評判中獲得的信息用于決定項目的下一個步驟。由于開發(fā)周期短,對需求管理恰當,敏捷管理正在從軟件研發(fā)行業(yè)延伸到已經(jīng)采取項目化管理的大部分行業(yè)中。

精益生產(chǎn)(Lean Production),簡稱“精益”,是衍生自日本豐田生產(chǎn)方式的一種管理哲學,由美國麻省理工學院教授詹姆斯.P.沃麥克等專家通過“國際汽車計劃(IMVP)”對全世界17個國家90多個汽車制造廠的調(diào)查和對比分析,認為日本豐田汽車公司的生產(chǎn)方式是最適用于現(xiàn)代制造企業(yè)的一種生產(chǎn)組織管理方式,精益生產(chǎn)是通過系統(tǒng)結構、人員組織、運行方式和市場供求等方面的變革,使生產(chǎn)系統(tǒng)能很快適應用戶需求不斷變化,并能使生產(chǎn)過程中一切無用、多余的東西被精簡,最終達到包括市場供銷在內(nèi)的生產(chǎn)的各方面最好結果的一種生產(chǎn)管理方式。

精益思維(Lean Thinking)和精益管理(Lean Management),源于精益生產(chǎn),精益管理由最初的在生產(chǎn)系統(tǒng)的管理實踐成功,已經(jīng)逐步延伸到企業(yè)的各項管理業(yè)務,也由最初的具體業(yè)務管理方法,上升為戰(zhàn)略管理理念。精益管理要求企業(yè)的各項活動都必須運用“精益思維”(Lean Thinking)?!熬嫠季S”的核心就是以最小資源投入,包括人力、設備、資金、材料、時間和空間,創(chuàng)造出盡可能多的價值,為顧客提供新產(chǎn)品和及時的服務。

image.png

圖. 現(xiàn)代軟件工程,基礎技術工具棧已經(jīng)很成熟,搭積木式敏捷開發(fā)與精益制造有著相似理念

從上述概念定義可以看出,敏捷和精益是對孿生姐妹,其關鍵詞涉及需求進化,迭代,可視化,循序漸進,可集成可運行,精益,最小資源投入等。單體應用系統(tǒng)建設,傳統(tǒng)軟件工程對敏捷開發(fā)和精益管理思想的需求并不迫切,而面對多源、異構、協(xié)作式大數(shù)據(jù)系統(tǒng)的架構設計、研發(fā)和項目實施來講,敏捷和精益設計理念至關重要,為什么這樣講?下圖是典型的傳統(tǒng)信息化技術架構與大數(shù)據(jù)系統(tǒng)架構的一個對比,有經(jīng)驗的朋友們應該可以看出一些端倪。

image.png

圖2 傳統(tǒng)信息系統(tǒng)與大數(shù)據(jù)系統(tǒng)架構對比

上圖左邊部分為傳統(tǒng)信息化技術架構,右邊部分為常見大數(shù)據(jù)系統(tǒng)架構,當然其中具體的技術組件選型根據(jù)不同的需求也不一樣,這種架構不是固定的,其中每個組件至少有幾個替代品,而且可以根據(jù)需要進行擴展。從這個圖我們可以得出這樣的結論,傳統(tǒng)信息系統(tǒng)可以一人打天下,而大數(shù)據(jù)系統(tǒng)的核心思想?yún)s是分布式和團結協(xié)作,一個人的力量再大,智慧再高,精力再強,也不如一群人有效整合后的力量大,而大數(shù)據(jù)系統(tǒng)架構就是負責多方面的整合(Hadoop,Spark等大數(shù)據(jù)基礎系統(tǒng)架構同理,如圖3-Hadoop系統(tǒng)架構示意圖),換句話說,這就像是軟件研發(fā)或生產(chǎn)過程中的敏捷和精益管理,由公司大領導(Master)進行分配任務,人員調(diào)配,每位員工(slave)努力完成自己負責的小目標工作,各級主管進行橫向和縱向協(xié)同,有效整合起來就是公司的大目標,可見大數(shù)據(jù)系統(tǒng)架構的演變已經(jīng)是很接近人類社會協(xié)作的思想了。而要有效支撐大數(shù)據(jù)系統(tǒng)架構的分布式協(xié)作能力,敏捷和精益設計思想是很有必要的參考。


image.png

圖3 Hadoop系統(tǒng)架構示意圖

(2)敏捷大數(shù)據(jù)定義

那什么是敏捷大數(shù)據(jù)呢,本文暫且給出一個初步的定義(還不夠成熟):“敏捷大數(shù)據(jù)是基于數(shù)據(jù)科學的迭代性本質(zhì)和敏捷研發(fā)管理思想,利用構件化、服務化和容器化等技術,對大數(shù)據(jù)系統(tǒng)架構和關鍵組件協(xié)作等進行精益設計,逐步實現(xiàn)多層次數(shù)據(jù)的融合處理和多種計算框架、模型的擴展和高效管理,快速響應大數(shù)據(jù)分析需求,快速構建大數(shù)據(jù)生產(chǎn)系統(tǒng),快速迭代大數(shù)據(jù)分析能力,從而提升大數(shù)據(jù)系統(tǒng)的分析效率和大數(shù)據(jù)決策價值”。敏捷大數(shù)據(jù)的核心要素遵從SFV原則(Small,F(xiàn)ast,Validation, SFV):一是小、二是快、三是證,小的業(yè)務分析目標切入,快速出原型快速迭代,證明有效之后再擴張。從某種程度上講,傳統(tǒng)BI項目的失敗很多是沒有把握好這三個原則,而互聯(lián)網(wǎng)企業(yè)的大數(shù)據(jù)系統(tǒng)能成功,能使開源大數(shù)據(jù)技術百花齊放,是因為把握好了這三個原則。

敏捷大數(shù)據(jù)要解決如下關鍵問題:如何實現(xiàn)統(tǒng)一的、標準化的、模塊化、可配置的大數(shù)據(jù)架構,以解決不同類型的異構子系統(tǒng)之間難以有效整合的問題。應用功能可以使用已有的功能組件組合而成,通過服務復用降低成本,在組件之間交換的數(shù)據(jù)形式應當標準化和接口化;組件的組合只需少量編程或配置便可以完成,常用模型和工具的集成標準化,如何簡化使用,可以對非程序員提供開箱即用的數(shù)據(jù)挖掘和分析能力;大數(shù)據(jù)應用全程(采集、存儲、分析、管理)可視化操作?;跀?shù)據(jù)科學的迭代性本質(zhì)和利用高效組件化工具,對大數(shù)據(jù)各功能子系統(tǒng)(模塊)進行組件化,模型標準化設計,并根據(jù)實際需求快速選型、快速配置、快速搭建大數(shù)據(jù)原型系統(tǒng),快速迭代大數(shù)據(jù)分析結果,并順應不斷變化的需求,盡快將原型轉化成生產(chǎn)系統(tǒng)。在快速迭代、快速反饋、閉環(huán)驗證過程中,讓客戶逐步完成大數(shù)據(jù)分析的系統(tǒng)思維和管理思維變革,天下武功,唯快不破,快小證原則和精益設計,這是敏捷大數(shù)據(jù)應用的核心目標。


image.png

圖4 敏捷迭代開發(fā)示意圖

(3)敏捷大數(shù)據(jù)流程優(yōu)化

根據(jù)敏捷大數(shù)據(jù)快、小、證SFV原則,我們對傳統(tǒng)的跨行業(yè)數(shù)據(jù)挖掘標準流程(Cross-industry Standard Process for Data Mining ,CRISP-DM)進行了改進,提出了基于微服務和容器(后續(xù)敏捷大數(shù)據(jù)關鍵技術章節(jié)會做詳細介紹)的敏捷大數(shù)據(jù)處理流程(Agile Big Data Processing based on Micro-services),如下圖:

image.png

圖5. CRISP-DM流程與敏捷大數(shù)據(jù)處理流程

敏捷大數(shù)據(jù)處理流程相比傳統(tǒng)數(shù)據(jù)挖掘流程,從兩個層面進行了擴展:首先是架構上采用基于容器的微服務技術進行支撐;其次針對傳統(tǒng)數(shù)據(jù)挖掘模型、系統(tǒng)和現(xiàn)實決策反饋的脫節(jié)問題,根據(jù)數(shù)據(jù)科學迭代性本質(zhì)特點,對模型系統(tǒng)和現(xiàn)實決策反饋兩個過程分別進行自適應迭代升級和智能決策進化支持。通過這種擴展,使得敏捷大數(shù)據(jù)方法論與傳統(tǒng)數(shù)據(jù)挖掘技術,以及和新興的主流大數(shù)據(jù)框架,能在架構和流程上進行互補和融合。要實現(xiàn)敏捷大數(shù)據(jù)SFV原則,敏捷大數(shù)據(jù)架構的設計至關重要。敏捷大數(shù)據(jù)架構需要在組件化管理、數(shù)據(jù)融合、資源調(diào)度、服務抽象、部署運維、計算模型和標準數(shù)據(jù)集的服務化,以及敏捷大數(shù)據(jù)處理流程等多個層面,進行科學有效地設計支撐。核心目標是要實現(xiàn)大數(shù)據(jù)的融合處理和分析功能的服務化、標準化和流程化,基于數(shù)據(jù)融合和微服務技術,設計模塊化、可配置的大數(shù)據(jù)分析平臺,對微服務的構建和管理進行快速實現(xiàn),通過各種微服務的劃分、組合、編排和動態(tài)配置,形成可復用的、可擴展的和可靈活調(diào)整的大數(shù)據(jù)分析系統(tǒng),從而實現(xiàn)敏捷大數(shù)據(jù)目標。

4.敏捷大數(shù)據(jù)關鍵技術

大數(shù)據(jù)時代,各種新興技術和計算框架層出不窮,加之分析需求的不斷變化,如何使大數(shù)據(jù)架構能隨時調(diào)整以適應業(yè)務需求,跟上技術更新的步伐,是大數(shù)據(jù)應用要解決的關鍵問題,這也是為什么提出敏捷大數(shù)據(jù)架構的本質(zhì)原因。面對大型企業(yè)動輒數(shù)十個上百個信息系統(tǒng),如何通過跨物理、虛擬、公共和私有云環(huán)境實現(xiàn)一致性、互操作性和可移植性,對IT基礎設施來講是極大的挑戰(zhàn)。所以微服務和容器技術應運而生,微服務實現(xiàn)系統(tǒng)模塊的組件化和獨立自治運行,容器能實現(xiàn)輕量級的虛擬化,而且完全使用沙箱機制,相互之間沒有任何接口。微服務、容器與云計算技術的天然結合,及其快速的研發(fā)、部署、維護優(yōu)勢,使得基于微服務和容器的敏捷大數(shù)據(jù)應用潛力巨大。

(1)微服務技術

服務的本質(zhì)就是行為的抽象,面向?qū)ο蟮姆椒ㄊ菑膶ο髮嶓w這個維度對世界進行描述,而面向服務(SOA)則是從行為模式這個維度對世界進行描述,本質(zhì)上是兩種不同維度的描述方法。


image.png

圖6. 軟件服務化發(fā)展歷程

由于數(shù)據(jù)科學的迭代性本質(zhì),大數(shù)據(jù)分析即服務成為應用熱點,而微服務與容器技術能有效支持本文提出的敏捷大數(shù)據(jù)SFV核心原則。近年來,微服務(設計思想發(fā)源于康威定律,如圖7)成為互聯(lián)網(wǎng)和大數(shù)據(jù)企業(yè)的研究和設計熱點,諸如谷歌、亞馬遜、Facebook、百度、京東、攜程等公司都在采用微服務理論和技術進行產(chǎn)品的設計、研發(fā)和部署。Netflix公司的Adrian Cockcroft將微服務稱為“細化SOA(Service Oriented Architecture, SOA)”,并認為這是一套具備開創(chuàng)意義的新型架構。敏捷之父Martin Fowler在他的《Micro services》一文中給出了微服務的定義,概括來說,微服務設計思想是一種使用若干小服務開發(fā)龐大應用的方法,每個服務運行在自己的進程中,通過輕量級的通信機制進行信息交互,每個微服務的粒度基于業(yè)務能力大小進行構建,并可以由不同的程序語言實現(xiàn),構建的服務鏈能夠通過容器等技術進行自動化部署。

image.png

圖7. 康威定律(Conway’s Law),系統(tǒng)的結構受限于設計這個系統(tǒng)的組織的溝通結構。由于系統(tǒng)的結構可能會隨著設計的深入而變化,所以必須保持設計的精簡與靈活。

從上述微服務定義可以看到,去中心化、原子化、獨立自治、快速組合、自動部署等特性是微服務技術的核心要素,中心思想是將一個單體應用構架打散,把原來龐大的應用層功能切分成粒度較小的微服務模塊,數(shù)據(jù)庫也按微服務功能單元進行相應的拆分進行支持(如圖8所示),采用基于云的容器技術單獨運行這些服務模塊,通過網(wǎng)絡和輕量級通信機制將這些分解的服務模塊協(xié)同連接起來,形成微服務簇和網(wǎng)絡,完成大型復雜任務,這種通過將復雜系統(tǒng)切分成若干小的微服務模塊的方式,其分布式、低耦合架構能極大地適應大數(shù)據(jù)分布式處理特性。


image.png

圖8 傳統(tǒng)單體應用架構與微服務架構的區(qū)別

(2)容器技術

微服務技術采用類似搭積木的構建方法,使得服務之間不相互影響,而且同一個系統(tǒng)的微服務可以采用不同的開發(fā)語言和數(shù)據(jù)庫技術。但是面對大型企業(yè)動輒數(shù)十、上百個信息系統(tǒng),如何通過跨物理、虛擬、公共和私有云環(huán)境實現(xiàn)一致性、互操作性和可移植性,對IT基礎設施來講是極大的挑戰(zhàn)。所以容器技術應運而生,容器最早由Docker公司提出并應用于自家的PaaS云服務平臺,近年來獲得廣泛認可,很多大型企業(yè)開始將單體應用系統(tǒng)微服務化,并部署在容器中。容器基于操作系統(tǒng)之上能實現(xiàn)相比傳統(tǒng)虛擬化技術(如VMware)更輕量級的虛擬化,而且完全使用沙箱機制,相互之間沒有接口。Hadoop的子系統(tǒng)Kubernetes已經(jīng)能支持基于云計算和Docker容器技術的微服務開發(fā)和部署,容器技術與云計算的天然結合及其快速的研發(fā)、部署、維護優(yōu)勢,對于微服務和敏捷大數(shù)據(jù)架構的設計和實現(xiàn)具有重要支撐作用。

image.png

圖9 Docker容器架構圖

(3)數(shù)據(jù)融合技術

由于大數(shù)據(jù)呈現(xiàn)的關聯(lián)性、動態(tài)性、多源異構性等特點,導致大數(shù)據(jù)的存儲、挖掘、分析和理解面臨極大挑戰(zhàn)。如何對多種形態(tài)格式的數(shù)據(jù)進行統(tǒng)一標準化融合處理,是敏捷大數(shù)據(jù)要解決的關鍵問題。與一般的大數(shù)據(jù)融合目標不同,本文主要從構建標準數(shù)據(jù)集的角度進行大數(shù)據(jù)多粒度融合,通過構建統(tǒng)一數(shù)據(jù)單元(unified data units,UDU)來支持多模態(tài)特征融合和多種類型、結構數(shù)據(jù)集的封裝融合。將多源異構數(shù)據(jù)進行抽取、融合、集成為支持不同計算模型處理的UDU數(shù)據(jù)集,是多粒度信息融合技術的核心目標。統(tǒng)一數(shù)據(jù)單元是獨立的和靈活的實體數(shù)據(jù)集,可隨數(shù)據(jù)源和分析需求的變化進行快速重組、調(diào)整和更新。通過信息融合形成的UDU標準數(shù)據(jù)集,是進行敏捷大數(shù)據(jù)處理的基礎。

針對機器學習各類模型的數(shù)據(jù)適配特點,我們提出了一種標準數(shù)據(jù)集定義:統(tǒng)一數(shù)據(jù)單元(UDU)對大數(shù)據(jù)多個層次和粒度的信息進行融合處理。特別是對多模態(tài)數(shù)據(jù),通過統(tǒng)一數(shù)據(jù)單元設計方法能實現(xiàn)數(shù)據(jù)的存儲優(yōu)化和機器學習模型數(shù)據(jù)輸入的標準化,以統(tǒng)一數(shù)據(jù)單元作為敏捷大數(shù)據(jù)系統(tǒng)的基本數(shù)據(jù)組織和處理單元,能提高大數(shù)據(jù)分析模型和算法的適應性和敏捷性,提升大數(shù)據(jù)處理能力。多粒度信息融合設計如下圖所示。

image.png

圖10 大數(shù)據(jù)多粒度信息融合設計

上圖的UDU統(tǒng)一數(shù)據(jù)單元至少可以支持三個層面的大數(shù)據(jù)融合,一是特征級融合,支持跨模態(tài)特征(如時間+空間特征)的大數(shù)據(jù)計算模型處理;二是數(shù)據(jù)級融合,支持多維數(shù)據(jù)立方體(Data Cube),數(shù)據(jù)集市(星型,雪花型模式)等數(shù)據(jù)模式和數(shù)據(jù)結構的融合;三是模型級融合,從不同模型任務(如分類、聚類、預測、關聯(lián)等模型)角度支持相應的數(shù)據(jù)單元處理。設計和構造大數(shù)據(jù)統(tǒng)一數(shù)據(jù)單元,需進行如下三個環(huán)節(jié)的處理。

1)特征抽?。簩Y構化數(shù)據(jù)、半結構化數(shù)據(jù)和非結構化數(shù)據(jù)進行數(shù)據(jù)集成和特征抽取,抽取出數(shù)據(jù)中的各類不同特征,包括時間特征、空間特征或其他全局特征等,實現(xiàn)對數(shù)據(jù)相關的位置屬性、時間空間關聯(lián)屬性和其他觀測屬性等的特征描述。2)融合封裝:抽取出來的各類數(shù)據(jù)特征,或者初步預處理后的數(shù)據(jù),根據(jù)不同的計算模型數(shù)據(jù)處理特點和要求,封裝成結構和格式統(tǒng)一的數(shù)據(jù)處理單元,形成標準分析數(shù)據(jù)集,為上層的挖掘計算服務提供快速數(shù)據(jù)適配。可以通過元數(shù)據(jù)定義方法和XML/JSON等技術,實現(xiàn)不同種類的統(tǒng)一數(shù)據(jù)單元定義,對每類統(tǒng)一數(shù)據(jù)單元進行基本信息和各類屬性定義和描述,包括標識ID、基本屬性、語義屬性、結構屬性等內(nèi)容。3)服務接口:封裝好的統(tǒng)一數(shù)據(jù)單元數(shù)據(jù)集,針對不同的挖掘計算服務模型實現(xiàn)快速數(shù)據(jù)適配,設計統(tǒng)一的數(shù)據(jù)單元調(diào)用接口,通過接口定義和參數(shù)設置對封裝數(shù)據(jù)單元進行解析,并對數(shù)據(jù)集各類屬性特征、結構信息等進行提取。

5.敏捷大數(shù)據(jù)系統(tǒng)架構

根據(jù)上述敏捷大數(shù)據(jù)關鍵技術的分析,如何設計實現(xiàn)有效的敏捷大數(shù)據(jù)系統(tǒng)架構是敏捷大數(shù)據(jù)應用的重點內(nèi)容。下面以交通大數(shù)據(jù)處理為例,對其敏捷處理架構進行了初步設計。由于交通大數(shù)據(jù)的復雜性和分析目標的多樣性,對傳統(tǒng)的數(shù)據(jù)挖掘分析模式和大數(shù)據(jù)技術架構提出了挑戰(zhàn)。例如,針對海量交通歷史靜態(tài)數(shù)據(jù),需采用離線批處理技術,而動態(tài)實時流交通數(shù)據(jù)則需要流式計算框架進行處理。另外,對文本、圖像、視頻、傳感器等多模態(tài)數(shù)據(jù)需采用不同的機器學習模型進行處理,如何進行跨模態(tài)的融合計算分析也是應用難點。針對交通大數(shù)據(jù)分析需求的變更和擴展,大數(shù)據(jù)系統(tǒng)如何進行快速響應和功能、模型的擴充和調(diào)整,是面向交通的敏捷大數(shù)據(jù)架構設計要解決的關鍵問題。

換句話說,要能根據(jù)不同的交通大數(shù)據(jù)分析需求設計靈活的處理架構進行支持,大數(shù)據(jù)架構要能從采集、存儲、計算、應用多個層面,滿足不同分析需求的變更或擴張?;诿艚荽髷?shù)據(jù)方法論及其關鍵技術的分析和研究,從數(shù)據(jù)采集集成、大規(guī)模數(shù)據(jù)存儲和數(shù)據(jù)融合、多模式/多模態(tài)計算微服務、數(shù)據(jù)應用4個層面進行了敏捷大數(shù)據(jù)架構設計。通過基于多粒度大數(shù)據(jù)集成融合構建統(tǒng)一數(shù)據(jù)單元,形成標準數(shù)據(jù)集,通過基于微服務的計算模型抽象和匯聚層處理,實現(xiàn)交通大數(shù)據(jù)挖掘的敏捷化、服務化。采用標準接口和插件開發(fā)的方式,對大數(shù)據(jù)主流處理框架(如Hadoop、Spark、Storm等)能進行統(tǒng)一配置管理,基于即插即用的構件化和服務化設計,各層子系統(tǒng)和組件可根據(jù)分析目標進行快速選型、靈活配置,構建原型和迭代升級(如下圖中根據(jù)兩條虛線不同的設計路徑,可以快速配置實現(xiàn)歷史數(shù)據(jù)庫數(shù)據(jù)的批處理分析,或公網(wǎng)采集數(shù)據(jù)的流處理分析),敏捷大數(shù)據(jù)總體架構設計如下圖所示。

image.png

圖11 面向交通的敏捷大數(shù)據(jù)總體架構設計

1)數(shù)據(jù)采集層:分3個層面的采集技術進行支持,一是傳統(tǒng)業(yè)務系統(tǒng)數(shù)據(jù)庫和半結構化、結構化數(shù)據(jù)的采集和集成,如采用Sqoop技術進行關系數(shù)據(jù)庫和Hadoop系統(tǒng)之間的數(shù)據(jù)抽取和交換;二是交通實時流數(shù)據(jù)的采集,包括實時傳感器數(shù)據(jù)、定位軌跡數(shù)據(jù)和其他實時流數(shù)據(jù);三是交通公共數(shù)據(jù)的采集,包括公網(wǎng)的數(shù)據(jù)爬取、開放平臺的數(shù)據(jù)接口、行業(yè)公共數(shù)據(jù)庫的數(shù)據(jù)交換等。對采集到的數(shù)據(jù)需進行提取、轉換和加載(extract-transform-load,ETL)處理,包括數(shù)據(jù)抽取、轉換、清洗和隱私脫敏等預處理工作,預處理集成后的數(shù)據(jù)進入交通大數(shù)據(jù)云存儲中心。

2)數(shù)據(jù)存儲層:交通領域數(shù)據(jù)規(guī)模巨大,數(shù)據(jù)存儲層需設計基于云計算的分布式云存儲系統(tǒng),以支持海量數(shù)據(jù)的存儲擴展。提供基于云的列式存儲、NoSQL存儲或數(shù)據(jù)倉庫存儲能力;根據(jù)業(yè)務需求和快速配置,可切換相應的分布式存儲模式,還可根據(jù)需要對傳統(tǒng)BI系統(tǒng)的數(shù)據(jù)倉庫和數(shù)據(jù)集市進行集成。利用Hadoop集群提供PB級存儲能力擴展,同時Hadoop YARN 和Spark Mesos等集群資源管理框架可支持多種存儲模式和計算模式(主要對存儲和計算兩個層面資源進行管理,如圖中雙向箭頭所示)的云資源調(diào)度。在此基礎上,對各類存儲數(shù)據(jù)進行多粒度信息融合,構建統(tǒng)一數(shù)據(jù)處理單元,為計算服務層提供標準化的分析數(shù)據(jù)集。

3)數(shù)據(jù)計算層:針對交通大數(shù)據(jù)多源、異構、海量等特征,傳統(tǒng)的計算模型難以直接處理。數(shù)據(jù)計算層需滿足主流大數(shù)據(jù)處理框架的各種計算模型與方法實現(xiàn),如基于云計算并行框架,實現(xiàn)基于Hadoop批處理、Storm流處理、Spark內(nèi)存處理的高效數(shù)據(jù)挖掘與機器學習。數(shù)據(jù)計算層采用基于統(tǒng)一數(shù)據(jù)處理單元和計算模式、模型微服務化的大數(shù)據(jù)分析框架,通過構建多種微服務簇網(wǎng)絡(主要分計算微服務、數(shù)據(jù)微服務和流程微服務,涵蓋存儲和計算兩個層面,如圖中雙向箭頭所示),為應用層提供支持MapReduce、Storm、Spark等多種計算模式下的多種數(shù)據(jù)挖掘模型與方法(如分類、聚類、序列等);根據(jù)大數(shù)據(jù)分析需求和數(shù)據(jù)特征,可基于組件配置和服務治理技術進行各類服務的快速切換和靈活管理。

4)數(shù)據(jù)應用層:數(shù)據(jù)應用層首先要滿足智慧交通各類大數(shù)據(jù)分析需求,包括基本的可視化與查詢、展示、探索等,分析結果能結合知識庫應用于決策支持。另外,大數(shù)據(jù)系統(tǒng)本身管理方面,針對構件化和微服務設計,需對相關中間件進行設計,實現(xiàn)服務治理、組件配置、安全、接口等功能,以支撐存儲層和計算層各類微服務的敏捷管理。

敏捷大數(shù)據(jù)架構的關鍵內(nèi)容除了數(shù)據(jù)融合UDU層面之外,另外一個關鍵環(huán)節(jié)就是對多種計算模式框架、多種計算模型的微服務化設計,包括計算框架、模型和算法的微服務化、數(shù)據(jù)獲取調(diào)用的微服化和分析流程的微服務化等層面。其核心是計算微服務,如MapReduce批處理服務、Storm流處理服務、Spark內(nèi)存處理服務,每種大的計算框架微服務下包含具體挖掘模型等小粒度的計算微服務支持(如分類模型服務、序列模型服務)等。由于微服務詳細技術涉及面比較廣,包括微服務的注冊、定位、發(fā)現(xiàn)和搜索(基于分布式一致算法Paxos和Zookeeper框架等),微服務的輕量級通信機制如REST(Representational State Transfer)、RPC(Remote Procedure Call Protocol)、IPC(Inter-Process Communication)等,微服務的容錯處理(熔斷、限流、負載均衡等),微服務容器化和服務的測試、部署等方面。由于篇幅原因,各方面的技術細節(jié)這里不做贅述,大家可以參考專業(yè)數(shù)據(jù)進行了解。在敏捷大數(shù)據(jù)架構和數(shù)據(jù)融合統(tǒng)一數(shù)據(jù)單元基礎上,進行了大數(shù)據(jù)分析層的微服務設計,如下圖。

image.png

圖12 面向交通的大數(shù)據(jù)分析微服務化設計

大數(shù)據(jù)分析微服務化的核心理念是一個服務只專注做好一類或一個分析,服務的粒度和分析功能大小、邊界要匹配,服務方(計算微服務)和消費方(基于微服務的分析功能)要能解耦,即調(diào)整或升級一個微服務不能影響其他微服務。大數(shù)據(jù)分析微服務設計主要內(nèi)容包括如下幾個方面。

1)大數(shù)據(jù)分析業(yè)務抽象和微服務劃分:按多模式計算框架分,有MapReduce批處理框架、Storm流式處理框架、Spark內(nèi)存處理框架、圖計算框架等;按挖掘模型分,有分類、聚類、序列、多模態(tài)、多任務等不同種類計算模型。針對交通大數(shù)據(jù)各類分析需求和數(shù)據(jù)處理特點,進行大數(shù)據(jù)業(yè)務分析和抽象建模,并選擇相應的計算模型和計算框架進行支撐,再決定需要哪些微服務,并實現(xiàn)微服務的劃分和組合,設定好微服務網(wǎng)絡的總體設計目標,并通過統(tǒng)一的微服務接口(Microservices API Gateway)進行調(diào)用。

2)微服務簇設計及契約接口定義:針對大數(shù)據(jù)處理特點,服務層中的微服務分3類進行規(guī)劃設計,數(shù)據(jù)微服務簇負責從UDU標準數(shù)據(jù)集中進行數(shù)據(jù)獲取、數(shù)據(jù)同步和更新等操作;計算微服務簇是敏捷大數(shù)據(jù)處理的核心,按多模式計算框架和多類計算模型兩個維度進行挖掘分析服務的統(tǒng)籌設計;流程微服務簇負責數(shù)據(jù)微服務、計算微服務的協(xié)同處理,同時對系統(tǒng)組件的配置管理和調(diào)度進行支持。各類微服務通過REST、RPC等輕量級通信機制和MessageBroker等消息服務進行交互和聯(lián)系[14],構建微服務簇網(wǎng)絡,并通過服務路由進行統(tǒng)一管理和調(diào)度。

3)微服務治理和容器部署:由各類微服務簇連接成的微服務網(wǎng)絡,其高效協(xié)調(diào)工作離不開微服務治理技術和容器管理技術。通過服務路由和服務治理負責各種大小微服務的注冊、搜索、發(fā)現(xiàn)、通信和統(tǒng)一配置,最后基于云計算和容器技術進行微服務的自動部署和動態(tài)管理。

6.敏捷大數(shù)據(jù)應用評述

本文提出的敏捷大數(shù)據(jù)架構在一定程度上實現(xiàn)了大數(shù)據(jù)融合處理和挖掘計算的服務化、標準化和流程化。基于統(tǒng)一數(shù)據(jù)單元和計算、流程微服務設計思想,對微服務的構建和管理進行快速實現(xiàn),通過各種微服務的劃分、組合、編排和動態(tài)配置,能構建模塊化、可配置、可復用、可擴展的敏捷大數(shù)據(jù)分析系統(tǒng)。相比傳統(tǒng)大數(shù)據(jù)處理架構,敏捷大數(shù)據(jù)架構在如下幾個方面具有明顯優(yōu)勢(見表1)。

表1 敏捷大數(shù)據(jù)架構與傳統(tǒng)大數(shù)據(jù)架構比較分析

image.png

從上述各項特性的比較分析可以看到,敏捷大數(shù)據(jù)架構除了支持大規(guī)模數(shù)據(jù)增長之外,更重要的是能適應大數(shù)據(jù)分析業(yè)務的擴展和變化,通過容器和服務化技術,具備高容錯性和穩(wěn)定性,能支持大數(shù)據(jù)分析的失敗處理和自動恢復等,能在海量數(shù)據(jù)條件下快速完成多種計算模型和分析處理,能基于數(shù)據(jù)融合單元和計算服務化技術,支持多模態(tài)計算和多模式計算任務處理,能在有限的成本條件下提高大數(shù)據(jù)分析效率。

當然要實現(xiàn)一套有效的敏捷大數(shù)據(jù)架構,不同的業(yè)務需求或采用不同的技術路線,所做的工作可能有較大差異,所以本文的標題定義為方法論。條條大路通羅馬,技術只是工具,關鍵還是方法論和指導思想。另外在架構詳細設計和實現(xiàn)方面,還有幾個難點需要突破,由于大數(shù)據(jù)計算框架眾多、每種框架下所支持的分析模型也很多、可視化庫更多…這些計算框架的技術架構和開發(fā)語言、接口定義標準可能都不一樣,敏捷大數(shù)據(jù)架構如何通過構建化、插件化等技術對上述工具集進行標準化和流程化的快速集成,這是敏捷實現(xiàn)要解決的主要問題。

我們結合正在規(guī)劃建設的綜合交通大數(shù)據(jù)分析云服務平臺,以本文提出的敏捷大數(shù)據(jù)方法論及架構設計,作為關鍵技術選型和技術路線實現(xiàn)的指導思想,并進行了初步應用。綜合交通大數(shù)據(jù)分析云服務平臺的主要目標是通過大數(shù)據(jù)技術解決交通資源的供需智能匹配和瓶頸預測分析問題。應用多粒度信息融合和多模態(tài)計算微服務技術,對交通大數(shù)據(jù)進行集成、融合和挖掘;采用定量分析和定性分析相結合的機器學習進行供求配置預測,為智能出行推薦、交通樞紐瓶頸分析、多模接駁換乘、實時交通管控等智慧交通關鍵環(huán)節(jié)提供大數(shù)據(jù)分析和決策支持。由于綜合交通大數(shù)據(jù)多源異構、時空關聯(lián)和動態(tài)處理等特點,傳統(tǒng)大數(shù)據(jù)架構面臨擴展性、兼容性、穩(wěn)定性諸多問題?;诿艚荽髷?shù)據(jù)方法論,設計了面向智慧交通的具有構件化、云服務化、容器化特性的敏捷大數(shù)據(jù)架構,為綜合交通大數(shù)據(jù)分析云服務平臺的研發(fā)提供了切實參考和應用指導,并在一定程度上提高了開發(fā)效率和控制了技術風險。

7.總結與展望

探討了大數(shù)據(jù)應用落地的主要瓶頸和面臨的挑戰(zhàn)。針對大數(shù)據(jù)特點及其分析瓶頸問題,分析了傳統(tǒng)信息化技術架構與大數(shù)據(jù)系統(tǒng)架構的區(qū)別,基于敏捷、精益和迭代設計思想,首次提出了敏捷大數(shù)據(jù)方法論,并對其概念定義、核心要素、流程優(yōu)化和關鍵技術等內(nèi)容進行了論述,通過分析敏捷大數(shù)據(jù)的設計緣由,基于傳統(tǒng)數(shù)據(jù)挖掘流程改進,設計了面向微服務的敏捷大數(shù)據(jù)處理流程,并對其關鍵支撐技術進行了初步研究和探索。構建了基于微服務和多粒度信息融合技術的敏捷大數(shù)據(jù)架構,并結合實際案例對交通大數(shù)據(jù)微服務化、交通大數(shù)據(jù)融合等關鍵技術環(huán)節(jié)進行了詳細設計和論述。

敏捷大數(shù)據(jù)的提出是基于數(shù)據(jù)科學迭代性本質(zhì),為各行業(yè)大數(shù)據(jù)應用環(huán)境下的高效、靈活大數(shù)據(jù)系統(tǒng)建設和機器學習、知識發(fā)現(xiàn)提供了新方法、新思路和新的技術架構,希望能通過敏捷設計最大程度降低成本、控制風險,從而發(fā)揮出大數(shù)據(jù)的應用價值,相比傳統(tǒng)大數(shù)據(jù)處理方法和技術架構,本方法論的重要意義和參考價值不言而喻。當然,敏捷大數(shù)據(jù)作為一個新的涵蓋多種前沿信息技術的跨領域應用研究問題,還需要在設計方法、關鍵技術和系統(tǒng)架構等方面進行深入探索和應用實踐。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容