關(guān)于數(shù)據(jù)中臺(tái)的深度思考與總結(jié)_第1頁(yè)
關(guān)于數(shù)據(jù)中臺(tái)的深度思考與總結(jié)_第2頁(yè)
關(guān)于數(shù)據(jù)中臺(tái)的深度思考與總結(jié)_第3頁(yè)
關(guān)于數(shù)據(jù)中臺(tái)的深度思考與總結(jié)_第4頁(yè)
關(guān)于數(shù)據(jù)中臺(tái)的深度思考與總結(jié)_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

關(guān)于數(shù)據(jù)中臺(tái)的深度思考與總結(jié)數(shù)據(jù)匯聚數(shù)據(jù)匯聚是數(shù)據(jù)中臺(tái)必須提供的核心工具,把各種異構(gòu)網(wǎng)絡(luò)、異構(gòu)數(shù)據(jù)源的數(shù)據(jù)方便地采集到數(shù)據(jù)中臺(tái)中進(jìn)行集中存儲(chǔ),為后續(xù)的加工建模做準(zhǔn)備。數(shù)據(jù)匯聚方式一般有數(shù)據(jù)庫(kù)同步、埋點(diǎn)、網(wǎng)絡(luò)爬蟲(chóng)、消息隊(duì)列等;從匯聚的時(shí)效性來(lái)分,有離線批量匯聚和實(shí)時(shí)采集。數(shù)據(jù)采集工具Canal、DataX、Sqoop數(shù)據(jù)開(kāi)發(fā)數(shù)據(jù)開(kāi)發(fā)模塊主要面向開(kāi)發(fā)人員、分析人員,提供離線、實(shí)時(shí)、算法開(kāi)發(fā)工具。離線開(kāi)發(fā)作業(yè)調(diào)度?依賴調(diào)度:所有父作業(yè)運(yùn)行完成后,當(dāng)前作業(yè)才能開(kāi)始運(yùn)行。圖64中的作業(yè)B,只有父作業(yè)A和C運(yùn)行完成后,才能開(kāi)始被調(diào)度。?時(shí)間調(diào)度:可指定作業(yè)的調(diào)度開(kāi)始時(shí)間。圖64中的作業(yè)B,只有到達(dá)05:00后才能開(kāi)始被調(diào)度。基線控制在大數(shù)據(jù)離線作業(yè)中,作業(yè)執(zhí)行時(shí)間較長(zhǎng),經(jīng)常遇到急著用數(shù)據(jù)發(fā)現(xiàn)數(shù)據(jù)還沒(méi)出來(lái)的情況。采用算法對(duì)作業(yè)完成時(shí)間進(jìn)行智能預(yù)測(cè),根據(jù)預(yù)測(cè),當(dāng)作業(yè)無(wú)法正常產(chǎn)出且動(dòng)態(tài)調(diào)整無(wú)法完成時(shí),調(diào)度中心會(huì)及時(shí)通過(guò)監(jiān)控告警通知運(yùn)維值班人員提前介入處理,為大數(shù)據(jù)作業(yè)執(zhí)行留出充裕的時(shí)間。異構(gòu)存儲(chǔ)企業(yè)內(nèi)部的存儲(chǔ)計(jì)算引擎呈多元化趨勢(shì)。離線開(kāi)發(fā)中心針對(duì)每種類(lèi)型的計(jì)算引擎會(huì)開(kāi)發(fā)不同的組件,例如,針對(duì)Oracle開(kāi)發(fā)Oracle插件,針對(duì)Hadoop體系分別開(kāi)發(fā)出Hive、Spark、MR等插件。用戶在界面新建各種作業(yè)類(lèi)型,在執(zhí)行時(shí)自動(dòng)根據(jù)作業(yè)的類(lèi)型尋找相應(yīng)的插件來(lái)運(yùn)行作業(yè)。代碼校驗(yàn)對(duì)于常見(jiàn)的SQL任務(wù)類(lèi)型,SQL檢查器會(huì)做好嚴(yán)格的管控,做到事前發(fā)現(xiàn)問(wèn)題。多環(huán)境級(jí)聯(lián)通過(guò)環(huán)境級(jí)聯(lián)的方式靈活支持企業(yè)的各類(lèi)環(huán)境需求,方便對(duì)資源、權(quán)限進(jìn)行控制和隔離。每個(gè)環(huán)境有獨(dú)立的Hive數(shù)據(jù)庫(kù)、Yarn調(diào)度隊(duì)列,甚至不同的Hadoop集群。常見(jiàn)的環(huán)境如下:?單一環(huán)境:只有一個(gè)生產(chǎn)環(huán)境,內(nèi)部管理簡(jiǎn)單。?經(jīng)典環(huán)境:開(kāi)發(fā)環(huán)境中存放脫敏數(shù)據(jù)、供開(kāi)發(fā)測(cè)試使用,上生產(chǎn)環(huán)境走發(fā)布流程,用于真實(shí)數(shù)據(jù)生產(chǎn)。?任務(wù)、資源和函數(shù)必須在開(kāi)發(fā)環(huán)境下進(jìn)行新建、修改或刪除,再經(jīng)過(guò)提交、創(chuàng)建發(fā)布包、同意發(fā)布三個(gè)操作后,才能同步到生產(chǎn)環(huán)境。?復(fù)雜環(huán)境:企業(yè)有外部人員和內(nèi)部人員,會(huì)給外部人員提供一個(gè)脫敏管控的環(huán)境,外部人員開(kāi)發(fā)完的數(shù)據(jù)模型經(jīng)過(guò)測(cè)試后發(fā)布到內(nèi)部開(kāi)發(fā)環(huán)境。推薦依賴隨著業(yè)務(wù)的不斷深入,數(shù)據(jù)開(kāi)發(fā)人員需要開(kāi)發(fā)的作業(yè)會(huì)不斷累加。既能保證準(zhǔn)確找到需要定位的上游作業(yè),又能保證不會(huì)形成環(huán)路。?獲取推薦依賴的核心原理在于上下游作業(yè)輸入和輸出的表級(jí)血緣依賴圖;?通過(guò)血緣分析當(dāng)前作業(yè)的輸入和輸出,找到合適的上游作業(yè);?對(duì)合適的作業(yè)進(jìn)行環(huán)路檢測(cè),剔除存在閉環(huán)的作業(yè);?返回合適的節(jié)點(diǎn)列表。數(shù)據(jù)權(quán)限企業(yè)內(nèi)部計(jì)算引擎多樣化,數(shù)據(jù)權(quán)限管理面臨如下問(wèn)題:?部分引擎擁有獨(dú)立的權(quán)限管理系統(tǒng)(例如Oracle、HANA、LibrA),導(dǎo)致權(quán)限申請(qǐng)需要到每一種引擎上單獨(dú)操作,讓使用變得復(fù)雜。?同一種計(jì)算引擎,不同廠商的權(quán)限系統(tǒng)有多種,例如Hadoop自身無(wú)數(shù)據(jù)權(quán)限系統(tǒng),由不同廠商各自去實(shí)現(xiàn),目前主要有兩種策略:?RBAC(Role-BasedAccessControl):如Cloudera用的是Sentry,華為的FI也是類(lèi)似的機(jī)制?PBAC(Policy-BasedAccessControl):如Hortonworks用的Ranger?數(shù)據(jù)權(quán)限是由大數(shù)據(jù)集群或數(shù)據(jù)庫(kù)運(yùn)維人員管理的,開(kāi)發(fā)人員無(wú)法直接操作或者接觸,所有的權(quán)限申請(qǐng)都需要運(yùn)維人員開(kāi)通,造成運(yùn)維人員負(fù)擔(dān)過(guò)重。在實(shí)際開(kāi)發(fā)中,一般需要運(yùn)維人員把整個(gè)庫(kù)的權(quán)限授權(quán)給某個(gè)開(kāi)發(fā)負(fù)責(zé)人,然后庫(kù)里面的表、字段、函數(shù)的權(quán)限管理由開(kāi)發(fā)負(fù)責(zé)人負(fù)責(zé)就行。?數(shù)據(jù)權(quán)限管理中心提供界面化操作,數(shù)據(jù)申請(qǐng)方直接在頁(yè)面上進(jìn)行各種權(quán)限的申請(qǐng),數(shù)據(jù)管理方在界面上審核權(quán)限,執(zhí)行同意或拒絕操作。同時(shí),所有權(quán)限的申請(qǐng)、審批都會(huì)有記錄,便于進(jìn)行權(quán)限審計(jì)。在統(tǒng)一數(shù)據(jù)權(quán)限服務(wù)中,會(huì)對(duì)接底層的各種權(quán)限管理系統(tǒng),例如Sentry、Ranger、Oracle,同時(shí)對(duì)數(shù)據(jù)權(quán)限管理中心提供服務(wù),執(zhí)行權(quán)限的申請(qǐng)、授權(quán)、撤銷(xiāo)等操作。實(shí)時(shí)開(kāi)發(fā)?元數(shù)據(jù)管理?SQL驅(qū)動(dòng)?組件化開(kāi)發(fā)智能運(yùn)維任務(wù)的管理、代碼發(fā)布、運(yùn)維、監(jiān)控、告警等一系列集成工具,方便使用,提升效率。重跑、重跑下游、補(bǔ)數(shù)據(jù)。數(shù)據(jù)體系有了數(shù)據(jù)匯聚、數(shù)據(jù)開(kāi)發(fā)模塊,中臺(tái)已經(jīng)具備傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)(后面簡(jiǎn)稱:數(shù)倉(cāng))平臺(tái)的基本能力,可以做數(shù)據(jù)的匯聚以及各種數(shù)據(jù)開(kāi)發(fā),就可以建立企業(yè)的數(shù)據(jù)體系。之前說(shuō)數(shù)據(jù)體系是中臺(tái)的血肉,開(kāi)發(fā)、管理、使用的都是數(shù)據(jù)。中臺(tái)數(shù)據(jù)體系應(yīng)具備以下特征:?覆蓋全域數(shù)據(jù):數(shù)據(jù)集中建設(shè)、覆蓋所有業(yè)務(wù)過(guò)程數(shù)據(jù),業(yè)務(wù)中臺(tái)在數(shù)據(jù)體系中總能找到需要的數(shù)據(jù)。?結(jié)構(gòu)層次清晰:縱向的數(shù)據(jù)分層、橫向主題域、業(yè)務(wù)過(guò)程劃分,讓整個(gè)層次結(jié)構(gòu)清晰易理解。?數(shù)據(jù)準(zhǔn)確一致:定義一致性指標(biāo),統(tǒng)一命名、統(tǒng)一業(yè)務(wù)含義、統(tǒng)一計(jì)算口徑,并有專(zhuān)業(yè)團(tuán)隊(duì)負(fù)責(zé)建模,保證數(shù)據(jù)的準(zhǔn)確一致。?性能提升:統(tǒng)一的規(guī)劃設(shè)計(jì),選用合理的數(shù)據(jù)模型,清晰的定義并統(tǒng)一規(guī)范,并且考慮使用場(chǎng)景,使整體性能更好。?降低成本:數(shù)據(jù)體系的建設(shè)使得數(shù)據(jù)能被業(yè)務(wù)共享,這避免了大量煙囪式的重復(fù)建設(shè),節(jié)約了計(jì)算、存儲(chǔ)和人力成本。?方便易用:易用的總體原則是越往后越能方便地直接使用數(shù)據(jù),把一些復(fù)雜的處理盡可能前置,必要時(shí)做適當(dāng)?shù)娜哂嗵幚怼2煌袠I(yè)的數(shù)據(jù)體系建設(shè):地產(chǎn)行業(yè)證券行業(yè)零售行業(yè)制造行業(yè)傳媒行業(yè)檢務(wù)行業(yè)貼源數(shù)據(jù)層ODS對(duì)各業(yè)務(wù)系統(tǒng)數(shù)據(jù)進(jìn)行采集、匯聚,盡可能保留原始業(yè)務(wù)流程數(shù)據(jù),與業(yè)務(wù)系統(tǒng)基本保持一致,僅做簡(jiǎn)單整合、非結(jié)構(gòu)化數(shù)據(jù)結(jié)構(gòu)化處理或者增加標(biāo)識(shí)數(shù)據(jù)日期描述信息,不做深度清洗加工。?表名:ODS_系統(tǒng)簡(jiǎn)稱_業(yè)務(wù)系統(tǒng)表名?字段名:與業(yè)務(wù)系統(tǒng)字段名保持一致,字段類(lèi)型也盡可能保持一致?對(duì)于數(shù)據(jù)量比較大的業(yè)務(wù)表,采用增量同步的方式,則要同時(shí)建立增量表和全量表,增量表命名加后綴:ODS_系統(tǒng)簡(jiǎn)稱_業(yè)務(wù)系統(tǒng)表名_delta。?對(duì)于日志、文件等半結(jié)構(gòu)數(shù)據(jù),不僅要存儲(chǔ)原始數(shù)據(jù),還要存儲(chǔ)結(jié)構(gòu)化之后的數(shù)據(jù)。使用DataX同步數(shù)據(jù)步驟:1)確定業(yè)務(wù)系統(tǒng)源表與貼源數(shù)據(jù)層目標(biāo)表2)配置數(shù)據(jù)字段映射關(guān)系,目標(biāo)表可能會(huì)增加采集日期、分區(qū)、原系統(tǒng)標(biāo)識(shí)等必要信息,業(yè)務(wù)相關(guān)內(nèi)容不做轉(zhuǎn)換3)如果是增量同步或著有條件的同步部分?jǐn)?shù)據(jù),則配置數(shù)據(jù)同步條件4)清理目標(biāo)表對(duì)應(yīng)數(shù)據(jù)5)啟動(dòng)同步任務(wù),往貼源數(shù)據(jù)層目標(biāo)表導(dǎo)入數(shù)據(jù)6)驗(yàn)證任務(wù)是否可以正確運(yùn)行,并且采集到準(zhǔn)確數(shù)據(jù)7)發(fā)布采集任務(wù),加入生產(chǎn)調(diào)度,并配置相關(guān)限速、容錯(cuò)、質(zhì)量監(jiān)控、告警機(jī)制統(tǒng)一數(shù)倉(cāng)層DW?明細(xì)數(shù)據(jù)層DWD?匯總數(shù)據(jù)層DWS與傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)功能基本一致,對(duì)全歷史業(yè)務(wù)過(guò)程數(shù)據(jù)進(jìn)行建模存儲(chǔ)。對(duì)來(lái)源于業(yè)務(wù)系統(tǒng)的數(shù)據(jù)進(jìn)行重新組織。業(yè)務(wù)系統(tǒng)是按照業(yè)務(wù)流程方便操作的方式來(lái)組織數(shù)據(jù)的,而統(tǒng)一數(shù)倉(cāng)層從業(yè)務(wù)易理解的視角來(lái)重新組織,定義一致的指標(biāo)、維度,各業(yè)務(wù)板塊、業(yè)務(wù)域按照統(tǒng)一規(guī)范獨(dú)立建設(shè),從而形成統(tǒng)一規(guī)范的標(biāo)準(zhǔn)業(yè)務(wù)數(shù)據(jù)體系。?標(biāo)簽數(shù)據(jù)層TDM面向?qū)ο蠼?,?duì)跨業(yè)務(wù)板塊、跨數(shù)據(jù)域的特定對(duì)象數(shù)據(jù)進(jìn)行整合,通過(guò)IDMapping把各個(gè)業(yè)務(wù)板塊、各個(gè)業(yè)務(wù)過(guò)程中的同一對(duì)象的數(shù)據(jù)打通,形成對(duì)象的全域標(biāo)簽體系,方便深度分析、挖掘、應(yīng)用。應(yīng)用數(shù)據(jù)層ADS按照業(yè)務(wù)的需要從統(tǒng)一數(shù)倉(cāng)層、標(biāo)簽數(shù)據(jù)層抽取數(shù)據(jù),并面向業(yè)務(wù)的特殊需要加工業(yè)務(wù)特定數(shù)據(jù),以滿足業(yè)務(wù)及性能需求,向特定應(yīng)用組裝應(yīng)用數(shù)據(jù)。數(shù)據(jù)資產(chǎn)管理數(shù)據(jù)資產(chǎn)管理包括對(duì)數(shù)據(jù)資產(chǎn)目錄、元數(shù)據(jù)、數(shù)據(jù)質(zhì)量、數(shù)據(jù)血緣、數(shù)據(jù)生命周期等進(jìn)行管理和展示,以一種更直觀的方式展現(xiàn)企業(yè)的數(shù)據(jù)資產(chǎn),提升企業(yè)的數(shù)據(jù)意識(shí)。數(shù)據(jù)資產(chǎn)對(duì)上支持以價(jià)值挖掘和業(yè)務(wù)賦能為導(dǎo)向的數(shù)據(jù)應(yīng)用開(kāi)發(fā),對(duì)下依托大數(shù)據(jù)平臺(tái)實(shí)現(xiàn)數(shù)據(jù)全生命周期的管理,并對(duì)企業(yè)數(shù)據(jù)資產(chǎn)的價(jià)值、質(zhì)量進(jìn)行評(píng)估,促進(jìn)企業(yè)數(shù)據(jù)資產(chǎn)不斷自我完善,持續(xù)向業(yè)務(wù)輸出動(dòng)力。數(shù)據(jù)治理傳統(tǒng)的數(shù)據(jù)治理通常包含數(shù)據(jù)標(biāo)準(zhǔn)管理、元數(shù)據(jù)管理、數(shù)據(jù)質(zhì)量管理、數(shù)據(jù)安全管理、數(shù)據(jù)生命周期管理等內(nèi)容。數(shù)據(jù)服務(wù)體系前面利用數(shù)據(jù)匯聚、數(shù)據(jù)開(kāi)發(fā)建設(shè)企業(yè)的數(shù)據(jù)資產(chǎn),利用數(shù)據(jù)管理展現(xiàn)企業(yè)的數(shù)據(jù)資產(chǎn),但是并沒(méi)有發(fā)揮數(shù)據(jù)的價(jià)值。數(shù)據(jù)服務(wù)體系就是把數(shù)據(jù)變?yōu)橐环N服務(wù)能力,通過(guò)數(shù)據(jù)服務(wù)讓數(shù)據(jù)參與到業(yè)務(wù),快速開(kāi)發(fā)企業(yè)的業(yè)務(wù)中臺(tái)等。查詢服務(wù)輸入特定的查詢條件,返回該條件下的數(shù)據(jù),以API形式供上層應(yīng)用調(diào)用。1)支持配置查詢標(biāo)識(shí),底層數(shù)據(jù)組織一般會(huì)對(duì)該標(biāo)識(shí)建立索引,以加快查詢速度2)支持配置過(guò)濾項(xiàng)3)支持查詢結(jié)果配置,包括數(shù)據(jù)排序規(guī)則和分頁(yè)規(guī)則。分析服務(wù)借助分析組件高效的大數(shù)據(jù)分析能力,對(duì)數(shù)據(jù)進(jìn)行關(guān)聯(lián)分析,分析結(jié)果通過(guò)API形式供上層應(yīng)用調(diào)用。1)支持多源數(shù)據(jù)接入:企業(yè)的數(shù)據(jù)經(jīng)過(guò)清洗加工轉(zhuǎn)換成數(shù)據(jù)資產(chǎn)后,最終通過(guò)服務(wù)作用于業(yè)務(wù)系統(tǒng),基于企業(yè)異構(gòu)存儲(chǔ)的現(xiàn)狀,要求分析服務(wù)能夠支持與Hive、ES、Greenplum、MySQL、Oracle、本地文件等多種數(shù)據(jù)源進(jìn)行連接。2)高性能即席查詢:隨著企業(yè)數(shù)據(jù)爆發(fā)式增長(zhǎng),傳統(tǒng)的數(shù)據(jù)分析工具遇到分析能力的瓶頸,也就是對(duì)大數(shù)據(jù)量的分析越來(lái)越乏力。因此,這就要求分析服務(wù)內(nèi)置高速計(jì)算引擎,以對(duì)數(shù)據(jù)進(jìn)行高性能的即席計(jì)算,實(shí)現(xiàn)億級(jí)數(shù)據(jù)毫秒級(jí)(至多秒級(jí))分析和計(jì)算,減少用戶等待時(shí)間。3)多維數(shù)據(jù)分析分析服務(wù)除了支持常規(guī)的數(shù)據(jù)分析、上卷下鉆、切片切塊之外,還應(yīng)該支持多維的數(shù)據(jù)分析以及深層次的數(shù)據(jù)挖掘,發(fā)現(xiàn)數(shù)據(jù)背后的關(guān)聯(lián)關(guān)系。4)靈活對(duì)接業(yè)務(wù)系統(tǒng)推薦服務(wù)按約定的格式提供歷史日志行為數(shù)據(jù)和實(shí)時(shí)訪問(wèn)數(shù)據(jù),推薦模型就會(huì)生成相應(yīng)的推薦API,從而為上層應(yīng)用提供推薦服務(wù)。推薦服務(wù)即所謂的千人千面,對(duì)不同的人對(duì)物的行為進(jìn)行數(shù)據(jù)挖掘,構(gòu)建每個(gè)人與物之間的關(guān)系程度,來(lái)推薦人、物以滿足用戶的興趣愛(ài)好,以提升用戶對(duì)業(yè)務(wù)的粘性。每個(gè)人打開(kāi)手機(jī)淘寶看到的內(nèi)容都不一樣,這就是一種基于人的興趣愛(ài)好的推薦服務(wù)能力。1)支持不同行業(yè)的推薦:不同行業(yè)背后的推薦邏輯是有區(qū)別的2)支持不同場(chǎng)景的推薦:以內(nèi)容資訊為例,在用戶冷啟動(dòng)場(chǎng)景下,應(yīng)該推薦哪些資訊?在用戶已有瀏覽行為的場(chǎng)景下,又該為其推薦哪些資訊?3)支持推薦效果優(yōu)化:從導(dǎo)入的原始數(shù)據(jù)開(kāi)始,經(jīng)過(guò)推薦組件生成推薦數(shù)據(jù),再根據(jù)用戶的瀏覽數(shù)據(jù)不斷修正推薦模型,從而使推薦效果不斷優(yōu)化圈人服務(wù)從全量用戶數(shù)據(jù)中,基于標(biāo)簽組合篩選符合指定特征條件的人群,并通過(guò)API形式供上層應(yīng)用調(diào)用。1)支持人群圈選:通過(guò)SQL代碼或標(biāo)簽取值組合等多種方式,實(shí)現(xiàn)人員查找,幫用戶找到對(duì)的人群2)支持人群計(jì)量:營(yíng)銷(xiāo)部門(mén)或者廣告公司使用圈人服務(wù)圈選出目標(biāo)人群后,往往還要考慮人群量是否符合預(yù)期,因?yàn)轭A(yù)算有限,不可能不計(jì)成本的對(duì)人群進(jìn)行營(yíng)銷(xiāo)。3)支持多渠道對(duì)接:將人群名單導(dǎo)出到相應(yīng)的下游系統(tǒng)。最簡(jiǎn)單的名單導(dǎo)出方式是先下載文件,再由業(yè)務(wù)人員導(dǎo)入相應(yīng)的業(yè)務(wù)系統(tǒng)中?;蛘咧苯訉?duì)接到短信系統(tǒng)、微信投放接口、營(yíng)銷(xiāo)活動(dòng)系統(tǒng)等。離線平臺(tái)蘇寧離線平臺(tái)產(chǎn)品功能圖:蘇寧調(diào)度模塊功能圖:蘇寧離線平臺(tái)整體架構(gòu)圖:跨任務(wù)流依賴的實(shí)現(xiàn):FTP事件機(jī)制,即在FTP服務(wù)器上建立標(biāo)識(shí)文件,一個(gè)事件對(duì)應(yīng)一個(gè)標(biāo)識(shí)文件地址,當(dāng)FTP服務(wù)器上的標(biāo)識(shí)文件生成的時(shí)候,我們認(rèn)為業(yè)務(wù)系統(tǒng)已經(jīng)完成作業(yè),需要觸發(fā)平臺(tái)任務(wù)執(zhí)行。“華佗”平臺(tái),實(shí)施任務(wù)診斷:立即觸發(fā)的任務(wù),放入DelayQueue的隊(duì)列頭部,周期調(diào)度的任務(wù),使用Quartz,依賴觸發(fā)的任務(wù),使用zk,各個(gè)子節(jié)點(diǎn)監(jiān)聽(tīng)自己的父節(jié)點(diǎn),所有父節(jié)點(diǎn)執(zhí)行完畢則可觸發(fā)執(zhí)行實(shí)時(shí)平臺(tái)美團(tuán)點(diǎn)評(píng)使用了Grafana,可以內(nèi)嵌到自己的平臺(tái)。bilibili?SQL化編程?DAG拖拽編程?一體化托管運(yùn)維實(shí)時(shí)平臺(tái)由實(shí)時(shí)傳輸和實(shí)時(shí)計(jì)算兩部分組成,平臺(tái)底層統(tǒng)一管理元數(shù)據(jù)、血緣、權(quán)限以及作業(yè)運(yùn)維等。實(shí)時(shí)傳輸主要負(fù)責(zé)將數(shù)據(jù)傳入到大數(shù)據(jù)體系中。實(shí)時(shí)計(jì)算基于BSQL提供各種應(yīng)用場(chǎng)景支持。如下圖所示,實(shí)時(shí)傳輸有APP日志、數(shù)據(jù)庫(kù)Binlog、服務(wù)端日志或系統(tǒng)日志。bilibili內(nèi)部的Lancer系統(tǒng)解決數(shù)據(jù)落地到Kafka或HDFS。計(jì)算體系主要圍繞Saber構(gòu)建一套BSQL,底層基于YARN進(jìn)行調(diào)度管理。上層核心基于Flink構(gòu)建運(yùn)行池。再向上一層滿足多種維表場(chǎng)景,包括MySQL、Redis、HBase。狀態(tài)(State)部分在RocksDB基礎(chǔ)上,還擴(kuò)展了MapDB、Redis。Flink需要IO密集是很麻煩的問(wèn)題,因?yàn)镕link的資源調(diào)度體系內(nèi)有內(nèi)存和CPU,但I(xiàn)O單位未做統(tǒng)一管理。當(dāng)某一個(gè)作業(yè)對(duì)IO有強(qiáng)烈的需求時(shí),需要分配很多以CPU或內(nèi)存為單位的資源,且未必能夠很好的滿足IO的擴(kuò)展。所以本質(zhì)上bilibili現(xiàn)階段是將IO密集的資源的State轉(zhuǎn)移到Redis上做緩解。數(shù)據(jù)經(jīng)過(guò)BSQL計(jì)算完成之后傳輸?shù)綄?shí)時(shí)數(shù)倉(cāng),如Kafka、HBase、ES或MySQL、TiDB。最終到AI或BI、報(bào)表以及日志中心。場(chǎng)景?AI工程方向,解決了廣告、搜索、推薦的流式Joiner和維表Joiner?實(shí)時(shí)計(jì)算的特征支持,支持Player以及CDN的質(zhì)量監(jiān)控。包括直播、PCU、卡頓率、CDN質(zhì)量等;?用戶增長(zhǎng),即如何借助實(shí)時(shí)計(jì)算進(jìn)行渠道分析、調(diào)整渠道投放效果;?實(shí)時(shí)ETL,包括Boss實(shí)時(shí)播報(bào)、實(shí)時(shí)大屏、看板等。網(wǎng)易目前網(wǎng)易流計(jì)算覆蓋了絕大多數(shù)場(chǎng)景,包括廣告、電商大屏、ETL、數(shù)據(jù)分析、推薦、風(fēng)控、搜索、直播等。事件管理對(duì)于分布式平臺(tái)的任務(wù)操作而言,當(dāng)前任務(wù)啟動(dòng)過(guò)程中只允許一個(gè)人操作,而不允許兩個(gè)人同時(shí)操作,這就需要以下幾個(gè)模塊來(lái)共同配合:?Server:事件執(zhí)行的發(fā)起者,接受事件的請(qǐng)求,進(jìn)行數(shù)據(jù)校驗(yàn),拼裝,將事件發(fā)送給Kernel執(zhí)行。?Kernel:事件具體邏輯的執(zhí)行者,根據(jù)請(qǐng)求向集群發(fā)送指令(Shell腳本方式)。?Admin:事件執(zhí)行結(jié)果的確認(rèn)者,根據(jù)事件類(lèi)型,獲取事件的最終結(jié)果,保證結(jié)果的正確性。以啟動(dòng)場(chǎng)景為例:首先,Server會(huì)接收到來(lái)自用戶的啟動(dòng)請(qǐng)求,之后會(huì)創(chuàng)建一個(gè)分布式鎖,Admin會(huì)監(jiān)控這個(gè)鎖。然后,Server向Kernel提交任務(wù),提交之后會(huì)立即返回,返回之后就會(huì)立即更新數(shù)據(jù)庫(kù)中的狀態(tài),將狀態(tài)更新為啟動(dòng)中,這樣在頁(yè)面上用戶就能夠看到任務(wù)是啟動(dòng)中的狀態(tài)了。接下來(lái),Server就會(huì)等待內(nèi)核的Shell腳本的執(zhí)行結(jié)果,如果Shell腳本執(zhí)行成功了,就會(huì)去寫(xiě)Zookeeper,寫(xiě)完Zookeeper之后Admin模塊就會(huì)馬上檢測(cè)到Zookeeper節(jié)點(diǎn)有狀態(tài)發(fā)生了修改,Admin會(huì)立即去獲取YARN上的任務(wù)狀態(tài),如果獲取到任務(wù)狀態(tài)是運(yùn)行中,就將數(shù)據(jù)庫(kù)的任務(wù)狀態(tài)更新為運(yùn)行中,這會(huì)在前端看到任務(wù)就已經(jīng)是運(yùn)行狀態(tài)了。最后一步是Admin更為完數(shù)據(jù)庫(kù)之后,會(huì)釋放掉Zookeeper上的鎖,其他人這時(shí)候就可以操作這個(gè)任務(wù)了。Server、Kernel和Admin這三個(gè)模塊都是不可靠的,那么如何保證其穩(wěn)定和高可用呢?Server可以通過(guò)部署多個(gè),水平擴(kuò)展來(lái)實(shí)現(xiàn),Kernel則會(huì)由Server來(lái)進(jìn)行監(jiān)聽(tīng),當(dāng)發(fā)現(xiàn)Kernel掛了,可以由Server重新拉起或者重新創(chuàng)建。而Admin的高可用則是通過(guò)熱備來(lái)實(shí)現(xiàn)的,如果主Admin掛掉了,可以馬上遷移到備Admin,備Admin可以迅速將元數(shù)據(jù)以及任務(wù)信息全部加載進(jìn)來(lái)接替工作,進(jìn)而實(shí)現(xiàn)高可用。平臺(tái)任務(wù)狀態(tài)管理平臺(tái)的任務(wù)狀態(tài)主要由Server和Admin來(lái)控制。Server主要控制初始狀態(tài)的執(zhí)行,Admin則主要負(fù)責(zé)控制所有與YARN相關(guān)的狀態(tài)交互。任務(wù)調(diào)試SQL類(lèi)型的任務(wù)支持調(diào)試功能,用戶可以根據(jù)不同的source表和dim表,上傳不同的csv文件作為輸入數(shù)據(jù),進(jìn)行調(diào)試。調(diào)試執(zhí)行由指定的kernel來(lái)完成,sloth-server負(fù)責(zé)組裝請(qǐng)求,調(diào)用kernel,返回結(jié)果,搜集日志。日志檢索在YARN集群的每個(gè)節(jié)點(diǎn)上面部署Filebeat,通過(guò)Filebeat將節(jié)點(diǎn)上面的任務(wù)日志寫(xiě)入到Kafka消息隊(duì)列中,然后通過(guò)Logstash進(jìn)行解析處理,之后寫(xiě)入ES集群中。主要用于兩個(gè)用途,一個(gè)是通過(guò)界面Kibana來(lái)提供給開(kāi)發(fā)和運(yùn)維人員使用,另外一個(gè)就是將運(yùn)行時(shí)狀態(tài)的任務(wù)日志直接在界面上展示供用戶進(jìn)行搜索和查看。監(jiān)控在監(jiān)控方面,使用的是influxdbmetricreport組件對(duì)于指標(biāo)進(jìn)行監(jiān)控。時(shí)序數(shù)據(jù)庫(kù)使用的是網(wǎng)易自研的ntsdb時(shí)序數(shù)據(jù)庫(kù),其能夠支持動(dòng)態(tài)擴(kuò)展和高可用等功能。監(jiān)控指標(biāo)的使用方式有兩種:?一種是通過(guò)Grafana的界面來(lái)查看指標(biāo);?另外一種是報(bào)警模塊會(huì)從Ntsdb中獲取相關(guān)指標(biāo)數(shù)據(jù)并進(jìn)行監(jiān)控報(bào)警。報(bào)警Sloth流計(jì)算平臺(tái)支持常見(jiàn)的任務(wù)失敗,數(shù)據(jù)滯留延遲,failover報(bào)警,也支持用戶自定義規(guī)則報(bào)警,包括對(duì)于輸入QPS、輸出QPS,戶自定義延遲的監(jiān)控等。以輸入QPS為例,可以設(shè)置當(dāng)連續(xù)幾個(gè)周期內(nèi)QPS低于某一值時(shí)就觸發(fā)報(bào)警。此外,報(bào)警方式也支持多樣化的工具,比如各種網(wǎng)易內(nèi)部的聊天工具、郵件、電話以及短信等,對(duì)于任務(wù)調(diào)試階段,為了避免被騷擾,可以設(shè)置任務(wù)報(bào)警抑制時(shí)間間隔。實(shí)時(shí)數(shù)倉(cāng)目前網(wǎng)易很多產(chǎn)品已經(jīng)開(kāi)始實(shí)時(shí)數(shù)倉(cāng)的建設(shè)了,但仍舊處于持續(xù)完善過(guò)程中。實(shí)時(shí)數(shù)倉(cāng)的建設(shè)和離線數(shù)倉(cāng)大致相同,只不過(guò)實(shí)時(shí)數(shù)倉(cāng)是經(jīng)過(guò)實(shí)時(shí)計(jì)算平臺(tái)進(jìn)行處理的。大致的過(guò)程就是首先收集日志、埋點(diǎn)數(shù)據(jù)等,將其寫(xiě)入到Kafka里面,經(jīng)過(guò)實(shí)時(shí)計(jì)算平臺(tái)進(jìn)行處理,將ODS層中的明細(xì)數(shù)據(jù)抽取出來(lái),在進(jìn)行匯總以及維度關(guān)聯(lián)等操作,將結(jié)果寫(xiě)入到Redis,Kudu等,再通過(guò)數(shù)據(jù)服務(wù)提供給前端的業(yè)務(wù)使用。電商應(yīng)用-數(shù)據(jù)分析實(shí)時(shí)活動(dòng)分析、首頁(yè)資源分析、流量漏斗以及實(shí)時(shí)毛利計(jì)算等。電商應(yīng)用-搜索推薦電商的搜索推薦場(chǎng)景則主要包括用戶實(shí)時(shí)足跡、用戶實(shí)時(shí)特征、商品實(shí)時(shí)特征、實(shí)時(shí)CTRCVR樣本組建、首頁(yè)A區(qū)輪播、B區(qū)活動(dòng)精選等UV、PV實(shí)時(shí)統(tǒng)計(jì)等。網(wǎng)絡(luò)營(yíng)銷(xiāo)中的常見(jiàn)名詞解釋?zhuān)?CPC(CostPerClick):按點(diǎn)擊計(jì)費(fèi)?CPA(CostPerAction):按成果數(shù)計(jì)費(fèi)?CPM(CostPerMille):按千次展現(xiàn)計(jì)費(fèi)?CVR(ClickValueRate):轉(zhuǎn)化率,衡量CPA廣告效果的指標(biāo)?CTR(ClickThroughRate):點(diǎn)擊率?PV(PageView):流量?ADPV(AdvertisementPageView):載有廣告的pageview流量ADimp(ADimpression):單個(gè)廣告的展示次數(shù)?PV單價(jià):每PV的收入,衡量頁(yè)面流量變現(xiàn)能力的指標(biāo)離線數(shù)倉(cāng)與實(shí)時(shí)數(shù)倉(cāng)從0建設(shè)離線數(shù)倉(cāng)建設(shè)數(shù)倉(cāng)數(shù)據(jù)倉(cāng)庫(kù)定義:在企業(yè)管理和決策中面向主題的、集成的、與時(shí)間相關(guān)的、不可修改的數(shù)據(jù)集合。數(shù)據(jù)倉(cāng)庫(kù)目標(biāo):數(shù)據(jù)資產(chǎn)、決策信息。ETL過(guò)程:打通你的任督二脈(離線+實(shí)時(shí)),讓數(shù)據(jù)在整個(gè)環(huán)節(jié)中流通起來(lái)數(shù)據(jù)分層:一套低耦合、高內(nèi)聚的層級(jí),是十分重要的,總不想業(yè)務(wù)、數(shù)據(jù)等一變化,數(shù)倉(cāng)像又投胎了一次數(shù)據(jù)集成:多業(yè)務(wù)場(chǎng)景下,打破數(shù)據(jù)信息壁壘,避免數(shù)據(jù)歧義,統(tǒng)一數(shù)據(jù)服務(wù)規(guī)范化:良好的流程化、規(guī)范化設(shè)計(jì),易維護(hù)、高擴(kuò)展監(jiān)控與輔助:質(zhì)量監(jiān)控、調(diào)度管理、元數(shù)據(jù)管理、信息安全管理走向服務(wù):對(duì)外api服務(wù)/自助查詢平臺(tái)/OLAP分析平臺(tái)ETL業(yè)務(wù)數(shù)據(jù)往往涉及多種數(shù)據(jù)源,數(shù)據(jù)存儲(chǔ)也常常會(huì)有多種選擇。文本數(shù)據(jù)、日志數(shù)據(jù)、RMDB、Nosql等。則要求etl工具能夠覆蓋這些業(yè)務(wù)場(chǎng)景。工具有datax/sqoop/kettle/informatica等等。ETL一般為最開(kāi)始的部分,凌晨之后的時(shí)間點(diǎn)。a:避免集中式的對(duì)某個(gè)jdbc海量同步,影響業(yè)務(wù)(部分從庫(kù)可能提供查詢服務(wù))、b:明確調(diào)度的時(shí)間,應(yīng)盡可能的在某個(gè)時(shí)間段內(nèi)完成(不能僅依靠調(diào)度,實(shí)現(xiàn)任務(wù)流的串行;為后期的大作業(yè)空間,占用等待的系統(tǒng)資源)分層Stage緩沖層事務(wù)性數(shù)據(jù),每日增量方式進(jìn)行數(shù)據(jù)同步。需要注意數(shù)據(jù)同步時(shí)的邊界問(wèn)題,避免臟數(shù)據(jù)。對(duì)于非事務(wù)性數(shù)據(jù),一般通過(guò)快照/全量更新。不對(duì)外開(kāi)放數(shù)據(jù)查詢。ods層一般場(chǎng)景下,我們認(rèn)為該層數(shù)據(jù)與線上保持一致。實(shí)際處理過(guò)程中,為了處理時(shí)間維度上的數(shù)據(jù)變化,會(huì)記錄數(shù)據(jù)的變化軌跡。對(duì)于該部分?jǐn)?shù)據(jù),應(yīng)該有選擇的實(shí)施,避免業(yè)務(wù)處理過(guò)程變得復(fù)雜和問(wèn)題發(fā)生后難以回溯。?dim/dw層(模型層)?dim:維度層?dw:主題事實(shí)及業(yè)務(wù)寬表在ods基礎(chǔ)上,設(shè)計(jì)一個(gè)寬表/模型層,通過(guò)維度建模的方式,實(shí)現(xiàn)維度數(shù)據(jù)與事實(shí)數(shù)據(jù)的分離(星型模型)。da層(應(yīng)用層)面向不同的應(yīng)用,聚合類(lèi)的數(shù)據(jù)層。該層對(duì)于dim/dw層的使用,是對(duì)模型層的一個(gè)檢視維度。代碼規(guī)范?腳本格式規(guī)范:腳本頭部注釋編碼規(guī)范、注釋規(guī)范、sql規(guī)范參考g

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論