做費(fèi)網(wǎng)站營銷網(wǎng)站定制
這篇文章主要淺談一下我對大數(shù)據(jù)生態(tài)體系建設(shè)的理解。
大數(shù)據(jù)生態(tài)系統(tǒng)為高并發(fā),高吞吐,高峰值,高堆積等大規(guī)模數(shù)據(jù)的采集,處理,計算,存儲,服務(wù)提供了完善的處理體系,致力于打造核心數(shù)據(jù)中臺建設(shè),實現(xiàn)整個生態(tài)的高可擴(kuò)展和高彈性,對數(shù)據(jù)熵的聚變提供基礎(chǔ)數(shù)據(jù)處理支撐,貫穿整個阿里大數(shù)據(jù)生態(tài)體系和應(yīng)用場景,對外暴露數(shù)據(jù)應(yīng)用層采用適配原則可以和各類集團(tuán)內(nèi)應(yīng)用提供統(tǒng)一的訪問和回調(diào)接口,對于接受到的數(shù)據(jù)處理和計算請求會交給數(shù)據(jù)服務(wù)層進(jìn)行數(shù)據(jù)清洗,轉(zhuǎn)換和預(yù)處理,然后會把數(shù)據(jù)交由數(shù)據(jù)計算層來進(jìn)行數(shù)據(jù)分揀,計算,提煉出最有價值的數(shù)據(jù)來實現(xiàn)業(yè)務(wù)場景最佳適配,數(shù)據(jù)計算層主要采用流批一體的處理思想,結(jié)合各類離線和實時計算平臺等自研發(fā)的大數(shù)據(jù)和云計算處理服務(wù)來實現(xiàn)大規(guī)模高精準(zhǔn)的數(shù)據(jù)計算,挖掘出最有價值的數(shù)據(jù),提煉數(shù)據(jù)價值,同時集成了數(shù)據(jù)整合和管理體系和工具來進(jìn)行最終的數(shù)據(jù)萃取。數(shù)據(jù)采集層則主要負(fù)責(zé)增全一體從各類關(guān)系型/非關(guān)系型數(shù)據(jù)庫,大數(shù)據(jù)存儲引擎,中間件容器中借助各類自研發(fā)日志采集服務(wù)實現(xiàn)實時/離線采集日志/增全量數(shù)據(jù),使用drc等實時數(shù)據(jù)流基礎(chǔ)設(shè)施實現(xiàn)數(shù)據(jù)同步,結(jié)合動態(tài)表,流表對偶性等實時計算核心概念實現(xiàn)流表數(shù)據(jù)同步和轉(zhuǎn)換,支持各類數(shù)據(jù)溯源。數(shù)據(jù)采集層和數(shù)據(jù)計算層通過各類自研發(fā)消息中間件/數(shù)據(jù)傳輸中間件實現(xiàn)數(shù)據(jù)同步,同時對于數(shù)據(jù)計算層引入了數(shù)據(jù)倉庫和模型的概念,采集到的數(shù)據(jù)經(jīng)過提煉和萃取后會保留有意義的數(shù)據(jù)到各類數(shù)據(jù)倉庫中,并基于元數(shù)據(jù)存儲引擎對數(shù)據(jù)進(jìn)行建模,對外統(tǒng)一暴露調(diào)度運(yùn)行態(tài)的數(shù)據(jù)模型進(jìn)行業(yè)務(wù)處理,內(nèi)部封裝了所有的大數(shù)據(jù)采集,計算和存儲服務(wù)。
實時計算平臺也叫做開放流計算服務(wù),核心API是AntPL SQL,棄用了DataStreamAPI,原因是SQL具有很多特性,比如聲明式,自動調(diào)優(yōu),易于理解,擴(kuò)展性強(qiáng),運(yùn)行穩(wěn)定,流批一體。比如很多人知道的Apache Flink就是一個面相集團(tuán)的開放流計算服務(wù),它的底層runtime就是一個統(tǒng)一了流和批的底層處理引擎,而SQL恰好可以在API層面實現(xiàn)流和批的統(tǒng)一。Flink最大的特點就是流批一體的高性能,高效率,面向大數(shù)據(jù)的實時數(shù)據(jù)計算引擎,可以隨著時間變化和數(shù)據(jù)變化不斷更新結(jié)果,始終處于運(yùn)行狀態(tài),對于運(yùn)行期數(shù)據(jù)源數(shù)據(jù)的增量變更會采取增量監(jiān)聽,抓取和實時計算的方式生成新的動態(tài)表流,新的動態(tài)表流又會作為下一個連續(xù)查詢的輸入源繼續(xù)參與計算,以此類推,最終會形成一個完整的數(shù)據(jù)流。在實時計算中,動態(tài)表可以理解為隨著時間變化不斷更新的表,流可以理解為是一個具有輸入輸出的數(shù)據(jù)通道,流和動態(tài)表是可以通過changelog進(jìn)行相互轉(zhuǎn)換的,那么我們就把這種特性叫做流表的對偶性,因為我們傳統(tǒng)sql都是批處理,是不支持流處理的,無論是概念上還是語法上,都不方便,無法在批流之間建立映射關(guān)系,因此如果我們要定義流sql就需要結(jié)合Flink SQL的核心概念連續(xù)查詢來實現(xiàn),Flink SQL流批一體可以通過一套SQL定義同時實現(xiàn)批流處理,并且對接了絕大多數(shù)數(shù)據(jù)源進(jìn)行輸入輸出,比如各類RDB Cluster,Random,AntQ,MetaQ,DataHub,TimeTunnel,TDDL,SLS,DRC,融合隊列,HBase,Exploer,ODPS等等,連續(xù)查詢往上走,還可以上升到維度的概念啊,分層的概念啊,數(shù)據(jù)分層,多流關(guān)聯(lián),維表關(guān)系等等,再此先不再深入討論流式SQL的衍變。
Flink SQL核心功能莫過于DataHub,MetaQ(RocketMQ),OTS進(jìn)行數(shù)據(jù)分層和流表,維表關(guān)聯(lián)讀寫,往深點說,還有很多高級特性,比如雙流JOIN,維表JOIN,TopN,窗口計算和水位,多路輸入輸出,MiniBatch,Retraction等機(jī)制實現(xiàn)early-fire,支持各類語言的數(shù)據(jù)計算任務(wù)研發(fā),質(zhì)量管理,整合,運(yùn)維保障,已經(jīng)實現(xiàn)了跨語言,跨數(shù)據(jù)源,跨地域的實時計算開發(fā)和管理。兼容T-SQL,PL/SQL,Java,C++,Python,Spark-Jar,Golang等等,內(nèi)置各類大數(shù)據(jù)處理引擎如Spark,ODPS,Kepler,Flink,結(jié)合大數(shù)據(jù)存儲引擎HBase,Explorer,ODPS,RDS Cluster等等實現(xiàn)數(shù)據(jù)從數(shù)據(jù)采集,數(shù)據(jù)處理,數(shù)據(jù)計算,數(shù)據(jù)服務(wù),數(shù)據(jù)應(yīng)用的全產(chǎn)業(yè)鏈高效穩(wěn)定發(fā)展,必將為DT時代大數(shù)據(jù)發(fā)展注入更多技術(shù)支持,能夠兼容更多的大數(shù)據(jù)業(yè)務(wù)場景,因此數(shù)據(jù)中臺建設(shè)是所有基礎(chǔ)設(shè)施建設(shè)中非常重要的一環(huán)。