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