數(shù)據(jù)是企業(yè)最重要的資產(chǎn)。對數(shù)據(jù)價值的挖掘,一直以來都是企業(yè)應(yīng)用、技術(shù)、架構(gòu)、服務(wù)等創(chuàng)新的源泉。經(jīng)過十?dāng)?shù)年技術(shù)發(fā)展,企業(yè)的核心數(shù)據(jù)處理逐漸分為兩大模塊: 以關(guān)系型數(shù)據(jù)庫(RDBMS)為主,主要用于解決交易型事務(wù)處理的問題;以分析型數(shù)據(jù)倉庫為主,主要解決數(shù)據(jù)整合分析的問題,并且當(dāng)需要對幾TB或十幾TB的數(shù)據(jù)進(jìn)行分析時,企業(yè)大多采用MPP數(shù)據(jù)庫架構(gòu)。這在傳統(tǒng)應(yīng)用領(lǐng)域是合適的。但是近年來,隨著互聯(lián)網(wǎng)的快速發(fā)展,特別是移動互聯(lián)網(wǎng)、物聯(lián)網(wǎng)的發(fā)展,企業(yè)的數(shù)據(jù)比以往任何時候產(chǎn)生的都要多都要快,面對動輒幾十TB、上百TB、甚至PB級別的數(shù)據(jù)進(jìn)行分析時,傳統(tǒng)架構(gòu)已近乎“疲于奔命”,難以招架。Hadoop在企業(yè)級市場隨之受到關(guān)注,逐漸被認(rèn)為是新形勢下最佳乃至唯一的選擇 。
這使得在企業(yè)的數(shù)據(jù)中心里,為了應(yīng)對不同量級的數(shù)據(jù)、不同性能的計算要求、不同計算模式的需要,不得不采用混合架構(gòu),即:關(guān)系型數(shù)據(jù)庫+內(nèi)存數(shù)據(jù)庫+MPP數(shù)據(jù)庫+Hadoop平臺。
然而,客戶采用這樣的混合架構(gòu),經(jīng)常面臨如下問題:
1. 大量數(shù)據(jù)需要頻繁地從一個平臺遷移至另外一個、甚至是另外幾個平臺,網(wǎng)絡(luò)開銷巨大。
2. MPP架構(gòu)在升級或擴(kuò)容時,對外提供的服務(wù)會受到影響。
3. 混合架構(gòu)的上線、后期運(yùn)維、升級成本居高不下。
4. 多套平臺需要多套運(yùn)維人馬,掌握多套平臺技能。
5. 每套平臺的容錯、備份、災(zāi)備等方案及實(shí)施,都需要單獨(dú)考慮。
面對以上眾多問題,對Hadoop有經(jīng)驗(yàn)的客戶進(jìn)行了大膽思考,并逐步實(shí)施了一個創(chuàng)新的架構(gòu):讓Hadoop統(tǒng)一數(shù)據(jù)分析平臺的混合架構(gòu)。這樣的想法僅在一年前還被認(rèn)為是不切實(shí)際的。當(dāng)時普遍認(rèn)同的是,Hadoop在處理上百TB或是PB級別數(shù)據(jù)時具有優(yōu)勢,但是讓MapReduce在Hadoop之上去處理GB或是幾TB數(shù)據(jù),則顯得過于笨重。
星環(huán)信息科技(上海)有限公司(以下簡稱星環(huán)科技)通過在大數(shù)據(jù)領(lǐng)域敏銳的判斷力、極強(qiáng)的執(zhí)行力與研發(fā)能力,在Hadoop/MapReduce之外獨(dú)辟蹊徑,通過引入Spark,完滿解決了Hadoop原有缺陷。 星環(huán)科技發(fā)布的一站式大數(shù)據(jù)綜合平臺 -- Transwarp Data Hub(以下簡稱TDH),不僅提供對海量數(shù)據(jù)超強(qiáng)的分析能力,在中小數(shù)據(jù)量的分析中,性能也優(yōu)于MPP架構(gòu),甚至可比擬專業(yè)的內(nèi)存數(shù)據(jù)庫平臺。TDH因此使企業(yè)能統(tǒng)一混合架構(gòu),形成完整的數(shù)據(jù)分析平臺。
TDH產(chǎn)品系列中的內(nèi)存分析引擎Inceptor將Spark作為核心的計算引擎,彌補(bǔ)了采用MapReduce計算引擎的缺點(diǎn)。Spark內(nèi)存計算技術(shù)通過把任務(wù)描繪成DAG、把分布式數(shù)據(jù)抽象成彈性分布式數(shù)據(jù)集(RDD)、中間結(jié)果存于內(nèi)存、減少Shuffle過程的磁盤IO等關(guān)鍵技術(shù),性能大幅領(lǐng)先于MapReduce 。星環(huán)科技經(jīng)過多個成功案例的積累與豐富實(shí)踐經(jīng)驗(yàn)的總結(jié),已經(jīng)將Inceptor打造成成熟、穩(wěn)定、高性能的分析平臺,解決了開源Spark不穩(wěn)定,例如:運(yùn)行24小時自動死掉、運(yùn)行SQL時快時慢、有時比MapReduce還慢、大內(nèi)存計算時經(jīng)常沒有響應(yīng)等問題。
Inceptor針對數(shù)據(jù)倉庫復(fù)雜分析的特點(diǎn),對Spark進(jìn)行了較多的技術(shù)改進(jìn)、創(chuàng)新與性能優(yōu)化。單獨(dú)開發(fā)了列式混合存儲層Holodesk,使得數(shù)據(jù)能夠在內(nèi)存與SSD中混合裝載,滿足更大的內(nèi)存計算緩存需求,極大地擴(kuò)展了對TB級別數(shù)據(jù)進(jìn)行分析時內(nèi)存的限制。Inceptor在內(nèi)存計算上做了較多的性能優(yōu)化,例如:完成了基于代價的優(yōu)化器,能夠更精準(zhǔn)地自動選擇最優(yōu)的執(zhí)行計劃;在多表之間通過鍵值進(jìn)行關(guān)聯(lián)時,通過數(shù)據(jù)分區(qū)、分桶、查詢過濾、條件下放等方式減小數(shù)據(jù)掃描IO,極大提高查詢速度等等。Inceptor在對多張10億條記錄的大表進(jìn)行關(guān)聯(lián)查詢時,相比MPP數(shù)據(jù)庫,性能提升2-10倍。
Inceptor另一個使其能夠進(jìn)入數(shù)據(jù)倉庫領(lǐng)域,統(tǒng)一企業(yè)數(shù)據(jù)分析平臺,提供對ANSI SQL1999標(biāo)準(zhǔn)的完整支持。Inceptor支持常用的數(shù)據(jù)類型、各種表連接查詢、各種子查詢、操作符、窗口聚合函數(shù)、甚至單條數(shù)據(jù)的DML操作等等。通過SQL實(shí)現(xiàn)的,運(yùn)行在現(xiàn)有內(nèi)存數(shù)據(jù)庫、MPP數(shù)據(jù)庫等平臺統(tǒng)計分析、經(jīng)營分析等綜合性企業(yè)報表,幾乎無需任何修改,便可以平滑遷移至TDH平臺。TDH在某運(yùn)營商的經(jīng)分系統(tǒng)中,成功運(yùn)行300多張報表,幾乎沒有做任何修改。TDH在某電網(wǎng)公司成功運(yùn)行21萬行SQL代碼,而僅僅做了十幾處的代碼修改。在其他的一些案例中,對于在Teradata等MPP數(shù)據(jù)庫平臺運(yùn)行的SQL也直接遷移至TDH平臺運(yùn)行,性能有很大提升。
Inceptor解決了一直以來MapReduce被詬病的在處理復(fù)雜數(shù)據(jù)分析、即席查詢、自助式分析、迭代式數(shù)據(jù)分析與機(jī)器學(xué)習(xí)時,無法提供快速的響應(yīng)時間的問題,使得大量一線業(yè)務(wù)人員可以通過大數(shù)據(jù)可視化工具靈活地進(jìn)行交互式數(shù)據(jù)分析與探索。Inceptor中整合了R語言的統(tǒng)計分析、數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)算法,數(shù)據(jù)分析人員可以快速地通過并行化的R語言算法對TDH平臺的TB、甚至PB級別的數(shù)據(jù)進(jìn)行快速的數(shù)據(jù)分析。如此強(qiáng)大的數(shù)據(jù)分析能力,已經(jīng)遠(yuǎn)遠(yuǎn)超過了現(xiàn)有MPP平臺的相關(guān)實(shí)現(xiàn)手段。
由此可見,對于業(yè)界呼聲比較高的、將Hadoop與MPP數(shù)據(jù)庫的進(jìn)行整合的方案,已經(jīng)顯得沒有很強(qiáng)的必要性。通過TDH平臺,可以完全替代MPP平臺 :第一,TDH平臺對ANSI SQL1999標(biāo)準(zhǔn)的完整支持,已經(jīng)可以滿足企業(yè)對大規(guī)模數(shù)據(jù)倉庫進(jìn)行復(fù)雜數(shù)據(jù)分析的需求;第二,集成Spark內(nèi)存計算技術(shù),在數(shù)據(jù)倉庫所支撐的數(shù)量級上(GB->TB->PB),能夠提供比傳統(tǒng)MPP平臺更好的性能;第三,TDH平臺提供比MPP平臺更強(qiáng)的擴(kuò)展性,更強(qiáng)的計算與分析結(jié)構(gòu)化、半結(jié)構(gòu)化、非結(jié)構(gòu)化的能力。第四,TDH平臺提供給客戶一個統(tǒng)一的數(shù)據(jù)平臺,不同數(shù)據(jù)量級的數(shù)據(jù)計算與分析都能夠很快得到滿足。第五,TDH平臺提供統(tǒng)一的數(shù)據(jù)容錯、備份與災(zāi)備,對企業(yè)提供更方便的措施和安全保障。
更多信息,請訪問 http://www.transwarp.io/