愛(ài)奇藝數(shù)據(jù)中臺(tái)建設(shè)組合拳:日志投遞、統(tǒng)一數(shù)倉(cāng)、大數(shù)據(jù)平臺(tái)
本次分享主要從以下部分展開(kāi):
- 數(shù)據(jù)中臺(tái)的產(chǎn)生:數(shù)據(jù)工作的痛點(diǎn)、數(shù)據(jù)中臺(tái)的產(chǎn)生、中臺(tái)的實(shí)質(zhì);
- 愛(ài)奇藝數(shù)據(jù)中臺(tái)的定義:理解數(shù)據(jù)中臺(tái)、數(shù)據(jù)中臺(tái)的發(fā)展歷程、輸出和定位;
- 愛(ài)奇藝數(shù)據(jù)中臺(tái)的建設(shè):中臺(tái)建設(shè)、Pingback體系、數(shù)倉(cāng)體系、數(shù)倉(cāng)平臺(tái)、離線數(shù)倉(cāng)架構(gòu)、大數(shù)據(jù)平臺(tái)、數(shù)據(jù)平臺(tái)架構(gòu);
- 數(shù)據(jù)中臺(tái)的應(yīng)用場(chǎng)景:統(tǒng)一化、個(gè)性化、定制化。
一、數(shù)據(jù)中臺(tái)的產(chǎn)生
1、數(shù)據(jù)工作的痛點(diǎn)
說(shuō)到數(shù)據(jù)中臺(tái)的產(chǎn)生,我們不得不從數(shù)據(jù)工作的痛點(diǎn)來(lái)切入。我總結(jié)了八個(gè)方向,這八個(gè)方向可能不足以覆蓋數(shù)據(jù)工作中的所有痛點(diǎn),但肯定是數(shù)據(jù)工作中最痛的八個(gè)點(diǎn)。
- 使用門(mén)檻高:數(shù)據(jù)工作是一個(gè)專業(yè)性特別強(qiáng)的一個(gè)工作,對(duì)于人員的要求比較高。在一些數(shù)據(jù)的工作當(dāng)中需要人員有專業(yè)的數(shù)據(jù)基礎(chǔ)能力,這樣就導(dǎo)致了數(shù)據(jù)人力的缺失,可能會(huì)影響業(yè)務(wù)的數(shù)據(jù)支持力度;
- 口徑不一致:在使用數(shù)據(jù)過(guò)程當(dāng)中,口徑不一致是特別常見(jiàn)的一種問(wèn)題,這種問(wèn)題可能會(huì)導(dǎo)致一種數(shù)據(jù)使用和分析的差異,而且會(huì)降低業(yè)務(wù)的數(shù)據(jù)分析效率,最終對(duì)業(yè)務(wù)決策造成嚴(yán)重影響;
- 數(shù)據(jù)可靠性低:在生產(chǎn)過(guò)程中,降低業(yè)務(wù)的數(shù)據(jù)分析效率,最終會(huì)對(duì)業(yè)務(wù)決策造成嚴(yán)重的影響,不僅數(shù)據(jù)鏈路過(guò)程很長(zhǎng),其中還會(huì)引入很多數(shù)據(jù)質(zhì)量問(wèn)題。并且,由于環(huán)節(jié)過(guò)多,也帶來(lái)了生產(chǎn)時(shí)間延遲的問(wèn)題,可能直接影響到后續(xù)核心報(bào)表,推薦、模型的優(yōu)化;
- 跨業(yè)務(wù)難度大:因?yàn)槲覀內(nèi)鄙僖粋€(gè)統(tǒng)一的數(shù)據(jù)建設(shè)的規(guī)劃、標(biāo)準(zhǔn)和規(guī)范,所以難以指導(dǎo)各個(gè)業(yè)務(wù)或者整個(gè)生產(chǎn)鏈路的各個(gè)環(huán)節(jié),以擁有一個(gè)標(biāo)準(zhǔn)化的生產(chǎn)和處理過(guò)程,就導(dǎo)致了多個(gè)業(yè)務(wù)的數(shù)據(jù)難以融合,難以發(fā)揮更大的數(shù)據(jù)價(jià)值;
- 接入成本高:這主要應(yīng)用在一個(gè)新的業(yè)務(wù)場(chǎng)景下,也就是說(shuō),如果我們有新的業(yè)務(wù)接入或者新的場(chǎng)景需要使用數(shù)據(jù),很多工作都需要人工處理。去申請(qǐng)各種資源、權(quán)限、找數(shù)據(jù)并且串聯(lián)整個(gè)數(shù)據(jù)的采集、生產(chǎn)、計(jì)算、同步和展示等各個(gè)環(huán)節(jié),這是一個(gè)耗時(shí)長(zhǎng)、效率低,最終還是很容易出錯(cuò)的過(guò)程;
- 投遞質(zhì)量低:因?yàn)檎f(shuō)到數(shù)據(jù)的話肯定離不開(kāi)投遞,投遞是我們用來(lái)記錄用戶行為的一連串的數(shù)據(jù)信息。如果投遞過(guò)程缺少標(biāo)準(zhǔn)化或者流程管控的話,都會(huì)導(dǎo)致投遞質(zhì)量比較差;
- 獲取數(shù)據(jù)難:可能在大家日常工作中會(huì)發(fā)現(xiàn),我們數(shù)據(jù)的生產(chǎn)到最終使用,中間可能要經(jīng)歷一個(gè)比較長(zhǎng)的時(shí)間周期或者一個(gè)比較寬的團(tuán)隊(duì)跨度,用戶可能無(wú)法很快地找到想要的數(shù)據(jù),或者數(shù)據(jù)團(tuán)隊(duì)生產(chǎn)出來(lái)的數(shù)據(jù)并沒(méi)有真正觸達(dá)到業(yè)務(wù),來(lái)達(dá)到它的數(shù)據(jù)價(jià)值;
- 數(shù)據(jù)資產(chǎn)模糊:這個(gè)點(diǎn)可能和獲取數(shù)據(jù)難有一點(diǎn)點(diǎn)關(guān)聯(lián),數(shù)據(jù)資產(chǎn)模糊的話更多的是在說(shuō)我們需要對(duì)公司的數(shù)據(jù)資產(chǎn)做一個(gè)整體的管理,如果沒(méi)有這個(gè)整體的管理,就會(huì)導(dǎo)致對(duì)數(shù)據(jù)資產(chǎn)的級(jí)別和我們自己擁有什么數(shù)據(jù)資產(chǎn)都很模糊。最終就是導(dǎo)致數(shù)據(jù)的優(yōu)勢(shì)難以發(fā)揮出來(lái),而且雖然我們耗費(fèi)了很多計(jì)算資源、人力資源、存儲(chǔ)資源,但沒(méi)有帶來(lái)相應(yīng)的價(jià)值,最終導(dǎo)致資源效率極低。
基于這些數(shù)據(jù)工作的一些痛點(diǎn),我們就會(huì)引入“數(shù)據(jù)中臺(tái)”的概念。
2、數(shù)據(jù)中臺(tái)的產(chǎn)生
數(shù)據(jù)中臺(tái)的產(chǎn)生,在國(guó)內(nèi)其實(shí)是阿里巴巴首先在2015年首先提出來(lái)的。提出這個(gè)概念指的是,我們通用能力的落地通過(guò)大中臺(tái)加小前臺(tái)的方式來(lái)實(shí)現(xiàn)。
但是,中臺(tái)并不適合所有的公司。數(shù)據(jù)中臺(tái)和其他中臺(tái)可能適用的場(chǎng)景,也就是一個(gè)公司或者一個(gè)集團(tuán)有多個(gè)業(yè)務(wù)并行發(fā)展且需要不斷地沉淀通用能力的時(shí)候。
下面列舉愛(ài)奇藝數(shù)據(jù)的中臺(tái)化的轉(zhuǎn)變過(guò)程:
左邊是剛開(kāi)始的狀態(tài)。我們每一個(gè)團(tuán)隊(duì)都負(fù)責(zé)一個(gè)業(yè)務(wù)線的數(shù)據(jù)處理、報(bào)表開(kāi)發(fā),最終輸出的數(shù)據(jù)也要提供給一些橫向的團(tuán)隊(duì)使用,比如說(shuō)推薦、運(yùn)營(yíng)和用戶畫(huà)像的工作。
但是,每個(gè)團(tuán)隊(duì)或者每條業(yè)務(wù)線所覆蓋的數(shù)據(jù)場(chǎng)景可能都不一樣,每個(gè)團(tuán)隊(duì)的能力或者標(biāo)準(zhǔn)也不一樣,這樣輸出數(shù)據(jù)的質(zhì)量或者口徑就會(huì)參差不齊。最終導(dǎo)致在下游使用的時(shí)候,成本會(huì)急劇增加。特別是在這個(gè)業(yè)務(wù)快速發(fā)展了一段時(shí)間之后,這個(gè)問(wèn)題就會(huì)越發(fā)地突現(xiàn)出來(lái)。
通過(guò)中臺(tái)化建設(shè),組織架構(gòu)上靠一個(gè)團(tuán)隊(duì)去支撐,把數(shù)據(jù)的通用能力抽象出來(lái),并且統(tǒng)一維護(hù)這套通用的能力。再將這一套通用的能力附加到每條業(yè)務(wù)線上,把每一條業(yè)務(wù)線或者說(shuō)把每一個(gè)業(yè)務(wù)線輸出的數(shù)據(jù),做成一個(gè)標(biāo)準(zhǔn)化、流程化的數(shù)據(jù)體系,最終輸出給下游方使用。下游方就是我們的業(yè)務(wù),包括推薦、運(yùn)營(yíng),都是整個(gè)公司運(yùn)轉(zhuǎn)起來(lái)的各個(gè)支持方向。
做完這個(gè)中臺(tái)化之后,從下游應(yīng)用的角度來(lái)說(shuō),它的口徑和效率都得到了一個(gè)很明顯的提升。
所以對(duì)于中臺(tái)化建設(shè),我們的目標(biāo)就是避免煙囪式和重復(fù)建設(shè),要實(shí)現(xiàn)抽象公共的通用能力,而且這個(gè)通用能力需要不斷沉淀和更新,并不是一成不變的。同時(shí),需要提供相關(guān)的標(biāo)準(zhǔn)和規(guī)范來(lái)指導(dǎo)用戶共同打造和使用中臺(tái),因?yàn)閱慰恳粋€(gè)團(tuán)隊(duì)去支持所有標(biāo)準(zhǔn)化的事情是不太現(xiàn)實(shí)的。
在此背景下,中臺(tái)團(tuán)隊(duì)有一項(xiàng)特別重要的工作就是提供標(biāo)準(zhǔn)和規(guī)范,讓大家能以一個(gè)統(tǒng)一的標(biāo)準(zhǔn)去開(kāi)展工作。這樣按照標(biāo)準(zhǔn)化流程生產(chǎn)出來(lái)的數(shù)據(jù)或者是其他的技術(shù)能力都可以快速?gòu)?fù)用。
最終,其實(shí)我們還是希望能夠打造一個(gè)數(shù)據(jù)生態(tài)的閉環(huán),覆蓋生產(chǎn)、處理、存儲(chǔ)、治理、服務(wù)整個(gè)過(guò)程。
3、數(shù)據(jù)中臺(tái)的實(shí)質(zhì)
數(shù)據(jù)中臺(tái)更像一種企業(yè)架構(gòu),是一套結(jié)合互聯(lián)網(wǎng)技術(shù)和行業(yè)特性,在企業(yè)發(fā)展的不確定性中,尋找確定性,并且持續(xù)沉淀和抽象企業(yè)核心能力,最終支持企業(yè)快速、高效、低成本進(jìn)行業(yè)務(wù)創(chuàng)新和增強(qiáng)的企業(yè)架構(gòu)。
進(jìn)一步,數(shù)據(jù)中臺(tái)的實(shí)質(zhì)就是抽象通用的數(shù)據(jù)能力,解決公司業(yè)務(wù)發(fā)展遇到的一些實(shí)際問(wèn)題,降低數(shù)據(jù)的使用成本,通過(guò)數(shù)據(jù)促進(jìn)業(yè)務(wù)的發(fā)展。
二、愛(ài)奇藝數(shù)據(jù)中臺(tái)的定義
說(shuō)了很多關(guān)于數(shù)據(jù)中臺(tái)的概念,下面我們結(jié)合愛(ài)奇藝的數(shù)據(jù)中臺(tái)來(lái)討論下數(shù)據(jù)中臺(tái)的定義。
1、理解數(shù)據(jù)中臺(tái)
這個(gè)圖其實(shí)是一個(gè)很簡(jiǎn)略的圖,但是能比較清晰地劃分出后臺(tái)、中臺(tái)、前臺(tái)的分界線。
數(shù)據(jù)后臺(tái):
我們大家平時(shí)更多用到了大數(shù)據(jù)集群,也就是說(shuō)Hadoop、Spark、Flink以及其他OLAP工具。但是這些只是數(shù)據(jù)后臺(tái)的一個(gè)概念,并沒(méi)有做成一個(gè)標(biāo)準(zhǔn)化、通用化、門(mén)檻相對(duì)來(lái)說(shuō)比較低的中臺(tái)化的概念。
數(shù)據(jù)中臺(tái):
數(shù)據(jù)中臺(tái)其實(shí)是一個(gè)數(shù)據(jù)即服務(wù)的產(chǎn)品概念,它包括了數(shù)據(jù)服務(wù)、數(shù)據(jù)平臺(tái)、數(shù)據(jù)中臺(tái)產(chǎn)生的數(shù)據(jù)以及在所有的數(shù)據(jù)工作中產(chǎn)生的標(biāo)準(zhǔn)和規(guī)范,這一些組成了我們所謂的數(shù)據(jù)中臺(tái)。
數(shù)據(jù)前臺(tái):
數(shù)據(jù)前臺(tái)就是我們實(shí)際的產(chǎn)品落地的具體例子,主要包括了幾個(gè)大的方向:
- 分析體系,比如說(shuō)用戶分析、內(nèi)容分析、業(yè)務(wù)報(bào)表等;
- 數(shù)據(jù)應(yīng)用,比如說(shuō)即席查詢、可視化查詢工具;
- 數(shù)據(jù)產(chǎn)品,類(lèi)似于畫(huà)像和推薦業(yè)務(wù),可能都是一些數(shù)據(jù)最終形成的產(chǎn)品,直接面向用戶服務(wù)。
所以數(shù)據(jù)中臺(tái)抽象出來(lái),就是指“平臺(tái)+服務(wù)+數(shù)據(jù)+標(biāo)準(zhǔn)化”的概念,它是將數(shù)據(jù)的生產(chǎn)、收集、處理、存儲(chǔ)和服務(wù)進(jìn)行封裝,并且面向不同層級(jí)的用戶提供不同的服務(wù)形式。
在數(shù)據(jù)標(biāo)準(zhǔn)化過(guò)程中,數(shù)據(jù)中臺(tái)可以防止數(shù)據(jù)重復(fù)建設(shè),避免口徑問(wèn)題,提高數(shù)據(jù)的使用效率。
在我們的數(shù)據(jù)的生產(chǎn)使用過(guò)程中,可能會(huì)因?yàn)闅v史的原因,或者業(yè)務(wù)快速發(fā)展所帶來(lái)的弊端,導(dǎo)致數(shù)據(jù)生產(chǎn)出來(lái),并沒(méi)有得到有效的使用或者生產(chǎn)出來(lái)的數(shù)據(jù)不夠穩(wěn)定、質(zhì)量不夠高。這個(gè)時(shí)候我們就需要對(duì)數(shù)據(jù)進(jìn)行有效的治理,以提升數(shù)據(jù)傳輸?shù)姆€(wěn)定性和準(zhǔn)確性,同時(shí)提升資源的利用率。
從另外一個(gè)角度看,數(shù)據(jù)中臺(tái)最終的目的是為了屏蔽數(shù)據(jù)工作的復(fù)雜性,讓用戶能夠更方便、更高效地發(fā)現(xiàn)和使用數(shù)據(jù),以此來(lái)滿足快速發(fā)業(yè)務(wù)快速發(fā)展的需求。
2、數(shù)據(jù)中臺(tái)的發(fā)展歷程
下圖是愛(ài)奇藝數(shù)據(jù)中臺(tái)的一個(gè)發(fā)展歷程,雖然相對(duì)粗粒度了一些,但是基本上能代表業(yè)界數(shù)據(jù)工作的一個(gè)發(fā)展歷程。
2017年及以前:
- 2017年及以前大家的數(shù)據(jù)工作都是一個(gè)相對(duì)零散化的狀態(tài),用Hadoop client或者是其他的客戶端進(jìn)行數(shù)據(jù)工作的開(kāi)發(fā),并且通過(guò)腳本化對(duì)數(shù)據(jù)任務(wù)進(jìn)行管理和運(yùn)維。
但是數(shù)據(jù)生產(chǎn)更多是需求導(dǎo)向的,來(lái)一個(gè)需求,我們就可以做一個(gè)數(shù)據(jù)。而不是,我們根據(jù)業(yè)務(wù)的發(fā)展的方向去擴(kuò)展數(shù)據(jù)的需求并且提前把擴(kuò)展性做好,這樣會(huì)導(dǎo)致數(shù)據(jù)比較零散,缺少統(tǒng)一的規(guī)劃。而缺少這種標(biāo)準(zhǔn)化的建設(shè)過(guò)程也符合當(dāng)時(shí)業(yè)務(wù)快速發(fā)展的需要。
2018年:
2018年愛(ài)奇藝開(kāi)始推進(jìn)平臺(tái)化建設(shè)的事情,也就是數(shù)據(jù)平臺(tái)的建設(shè)。
平臺(tái)化的過(guò)程中,我們主要是完成了以下幾項(xiàng)工作:
- 離線計(jì)算的任務(wù)的開(kāi)發(fā)和運(yùn)維管理;
- 對(duì)應(yīng)的流式計(jì)算的開(kāi)發(fā)和運(yùn)維管理;
- 為了高效穩(wěn)定地把外部的數(shù)據(jù)同步到我們的數(shù)據(jù)中臺(tái),或者把數(shù)據(jù)產(chǎn)出同步到其他的業(yè)務(wù)系統(tǒng)下,我們開(kāi)發(fā)了自己的數(shù)據(jù)集成模塊,用于實(shí)現(xiàn)不同存儲(chǔ)數(shù)據(jù)之間的數(shù)據(jù)同步功能;
我們對(duì)數(shù)據(jù)進(jìn)行了一些簡(jiǎn)單的管理,即數(shù)據(jù)表的創(chuàng)建到、維護(hù)、管理,都通過(guò)平臺(tái)化的形式去進(jìn)行的。
2019年:
- 在平臺(tái)化初步建成之后,我們開(kāi)始著手做一些標(biāo)準(zhǔn)化的工作。
- 標(biāo)準(zhǔn)化工作幾乎覆蓋了整個(gè)數(shù)據(jù)生命周期,從日志投遞環(huán)節(jié)開(kāi)始實(shí)施,針對(duì)Pingback2.0的規(guī)范,做了相應(yīng)的工具來(lái)支持這個(gè)規(guī)范落地。同時(shí)結(jié)合公司業(yè)務(wù)制定了數(shù)據(jù)倉(cāng)庫(kù)規(guī)范,用于指導(dǎo)整個(gè)的建模流程,也對(duì)指標(biāo)和維度體系都做了一個(gè)明確的定義和規(guī)范。
- 進(jìn)一步,把數(shù)據(jù)的生產(chǎn)流程進(jìn)行了流程化的管理,最終給下游提供了統(tǒng)一的數(shù)據(jù)接口能力。這個(gè)數(shù)據(jù)接口能力更多偏向應(yīng)用層,我們通過(guò)前面一系列的數(shù)據(jù)開(kāi)發(fā)工作,在平臺(tái)上定義數(shù)據(jù)接口和數(shù)據(jù)服務(wù),最終通過(guò)REST API的形式,對(duì)下游提供數(shù)據(jù)查詢或接入能力。
2020年:
- 完成了上述的平臺(tái)化和標(biāo)準(zhǔn)化工作之后,其實(shí)已經(jīng)初步達(dá)到了中臺(tái)化建設(shè)的要求。
- 前面提到的平臺(tái)化和標(biāo)準(zhǔn)化更多的是給中臺(tái)團(tuán)隊(duì)定義了一套統(tǒng)一的流程,讓使用方按照這套流程做操作和處理。而中臺(tái)化,其實(shí)是完成了一個(gè)從統(tǒng)一化到定制化的一個(gè)轉(zhuǎn)變。也就是說(shuō),中臺(tái)可以提供各種各樣在不同環(huán)節(jié)的工具或者平臺(tái),業(yè)務(wù)方根據(jù)自己的需要進(jìn)行靈活組裝,把這種模塊化的數(shù)據(jù)能力,定制化地輸出到業(yè)務(wù)當(dāng)中。
- 同時(shí),我們開(kāi)始了數(shù)據(jù)治理的體系。數(shù)據(jù)治理包括制定數(shù)據(jù)資產(chǎn)的定級(jí)標(biāo)準(zhǔn)、梳理整個(gè)數(shù)據(jù)鏈路、數(shù)據(jù)存儲(chǔ)形式和數(shù)據(jù)使用審計(jì)等環(huán)節(jié)。所以可以認(rèn)為,數(shù)據(jù)治理是一個(gè)持續(xù)性的工作,不像項(xiàng)目制工作有結(jié)項(xiàng)的節(jié)點(diǎn)和計(jì)劃,這和平臺(tái)化、標(biāo)準(zhǔn)化的事情還是有一定差異的。
還有就是我們?cè)诨谄脚_(tái)化、標(biāo)準(zhǔn)化的過(guò)程中,對(duì)新的業(yè)務(wù)抽象出一套通用的處理模板,幫助業(yè)務(wù)快速、自動(dòng)化地完成接入,這種方式適合公司內(nèi)部孵化的一些新業(yè)務(wù)快速接入我們的數(shù)據(jù)能力。
最后,是一個(gè)持續(xù)化的過(guò)程,即通用能力的不斷沉淀。因?yàn)閿?shù)據(jù)工作,或者其他技術(shù)類(lèi)工作都是類(lèi)似的,在實(shí)際的發(fā)展過(guò)程中技術(shù)和理念的升級(jí),都會(huì)帶來(lái)一些通用能力的抽象沉淀,所以這個(gè)不斷沉淀的過(guò)程也是一個(gè)發(fā)展的過(guò)程。
3、數(shù)據(jù)中臺(tái)的輸出
數(shù)據(jù)中臺(tái)面向不同的用戶和場(chǎng)景,它的呈現(xiàn)形式是都不一樣。因?yàn)橹信_(tái)的目的是服務(wù)業(yè)務(wù)和用戶,它區(qū)別于平臺(tái)一個(gè)特別關(guān)鍵的點(diǎn)就是它可以滿足不同場(chǎng)景和不同用戶,通過(guò)數(shù)據(jù)中臺(tái)的模塊化能力構(gòu)建一套定制化的數(shù)據(jù)處理流程,以此來(lái)滿足不同業(yè)務(wù)的個(gè)性化的數(shù)據(jù)解決方案。
數(shù)據(jù)中臺(tái)輸出形式分為以下幾個(gè):
- 服務(wù):指可以提供對(duì)外信息查詢、可視化查詢、數(shù)據(jù)接口、元數(shù)據(jù)接口等服務(wù)形式,用戶可以直接訪問(wèn)或者通過(guò)協(xié)議對(duì)接到自己的平臺(tái)或者服務(wù)當(dāng)中;
- 數(shù)據(jù):指數(shù)據(jù)工作中一個(gè)核心的產(chǎn)出,最終以一個(gè)統(tǒng)一數(shù)倉(cāng)的形式呈現(xiàn)出來(lái)。統(tǒng)一數(shù)倉(cāng)完成一些標(biāo)準(zhǔn)化的工作,把業(yè)務(wù)都需要的一些通用邏輯進(jìn)行抽象處理,避免下游使用方在使用過(guò)程中的重復(fù)處理。因?yàn)樵谥貜?fù)的處理過(guò)程中,可能會(huì)引入不一致的口徑或者維度,造成資源的浪費(fèi)。而且,因?yàn)閿?shù)據(jù)發(fā)展可能要經(jīng)歷業(yè)務(wù)的很多階段,所以我們?cè)谧鼋y(tǒng)一數(shù)倉(cāng)的時(shí)候,需要把這些歷史的演進(jìn)過(guò)程,幫用戶屏蔽掉,讓大家在用數(shù)據(jù)時(shí),不需要再去考慮歷史的演進(jìn)問(wèn)題。而且我們?cè)趯?duì)于不同業(yè)務(wù)之間也做了一個(gè)標(biāo)準(zhǔn)化的處理,方便用戶跨業(yè)務(wù)地去使用數(shù)據(jù);
- 平臺(tái):更多面向數(shù)據(jù)開(kāi)發(fā)人員,對(duì)整個(gè)的大數(shù)據(jù)的能力進(jìn)行了平臺(tái)化的封裝。提供界面化的數(shù)據(jù)開(kāi)發(fā)能力,并且數(shù)據(jù)任務(wù)的運(yùn)維和管理更加高效,同時(shí)也會(huì)把工作中常用到的信息以更好的組織形式展現(xiàn)出來(lái)。除了這些能力之外,還有其他便于用戶使用和加工數(shù)據(jù)的能力,比如HA、補(bǔ)跑數(shù)據(jù)等;
- 投遞:數(shù)據(jù)來(lái)源中比較重要的一塊。在形成了一套投遞標(biāo)準(zhǔn)之后,去建立一些對(duì)應(yīng)的投遞工具用于進(jìn)行投遞管理。進(jìn)一步,在測(cè)試和灰度階段也增加了兩個(gè)平臺(tái)用于保證投遞質(zhì)量,分別是統(tǒng)計(jì)測(cè)試平臺(tái)和灰度監(jiān)測(cè)平臺(tái)。在這兩個(gè)階段對(duì)質(zhì)量進(jìn)行監(jiān)控,最終保證數(shù)據(jù)在真正投遞出來(lái)之前穩(wěn)定可靠且質(zhì)量比較高;
- 標(biāo)準(zhǔn)/規(guī)范:是數(shù)據(jù)中臺(tái)能力最基礎(chǔ)的組成部分。也就是說(shuō),中臺(tái)要輸出標(biāo)準(zhǔn)流程和規(guī)范來(lái)讓大家可以快速按照流程和規(guī)范去開(kāi)展工作,而且這個(gè)流程和規(guī)范一定是方便用戶接受的。如果一些標(biāo)準(zhǔn)流程過(guò)于復(fù)雜,就要盡可能地通過(guò)平臺(tái)化、工具化的方式協(xié)助用戶理解。
4、數(shù)據(jù)中臺(tái)的定位
說(shuō)到數(shù)據(jù)中臺(tái)定位,因?yàn)閿?shù)據(jù)中臺(tái)和前臺(tái)、后臺(tái)都需要有一個(gè)明確的劃分,數(shù)據(jù)中臺(tái)定位提供了這種抽象通用的能力來(lái)支持前臺(tái)團(tuán)隊(duì)在此基礎(chǔ)之上進(jìn)行定制化,最終在復(fù)用通用能力的同時(shí),能夠滿足業(yè)務(wù)快速發(fā)展的個(gè)性化的需求,達(dá)到一個(gè)全局最優(yōu)化的狀態(tài)。
三、愛(ài)奇藝數(shù)據(jù)中臺(tái)建設(shè)
下面給大家介紹一下愛(ài)奇藝數(shù)據(jù)中臺(tái)的建設(shè)過(guò)程。
1、建設(shè)
我們主要是從五個(gè)角度去輸出中臺(tái)能力,分別是服務(wù)、數(shù)據(jù)、平臺(tái)、投遞、標(biāo)準(zhǔn)/規(guī)范。在愛(ài)奇藝數(shù)據(jù)中臺(tái)的實(shí)施過(guò)程中,我們劃分出了三個(gè)大方向:
- 生產(chǎn),也就是我們所說(shuō)的投遞體系;
- 數(shù)據(jù),也就是統(tǒng)一數(shù)倉(cāng)的體系,是數(shù)據(jù)的核心;
- 大數(shù)據(jù)平臺(tái)能力:包括開(kāi)發(fā)、治理、服務(wù)。
日志投遞:
- 這部分我們輸出了投遞規(guī)范,進(jìn)一步針對(duì)投遞規(guī)范,我們需要對(duì)公司的相關(guān)員工進(jìn)行培訓(xùn),讓大家深刻地理解投遞是為了做什么,并且怎樣才能達(dá)到我們對(duì)于用戶的行為足夠深入的分析要求。
在平臺(tái)和工具這個(gè)角度,我們封裝了Pingback SDK來(lái)滿足不同端的投遞工作,比如安卓、iPhone等;通過(guò)Pingback SDK去幫助業(yè)務(wù)實(shí)現(xiàn)通用化的工作。同時(shí)我們幫助投遞管理的同學(xué)提供了一個(gè)管理平臺(tái),并且在數(shù)據(jù)的使用當(dāng)中提供統(tǒng)計(jì)測(cè)試平臺(tái)和灰度監(jiān)測(cè)平臺(tái)。
大數(shù)據(jù)平臺(tái):
- 我們有一線開(kāi)發(fā)、對(duì)應(yīng)的運(yùn)維管理、實(shí)時(shí)開(kāi)發(fā)對(duì)應(yīng)的運(yùn)維管理,以及數(shù)據(jù)治理、數(shù)據(jù)圖譜、數(shù)據(jù)服務(wù)和即席查詢。即席查詢是我們數(shù)據(jù)服務(wù)里的一個(gè)子項(xiàng),但是因?yàn)閼?yīng)用面比較廣,就單獨(dú)拎出來(lái)了。
統(tǒng)一數(shù)倉(cāng):
- 最后一塊是統(tǒng)一數(shù)倉(cāng)的能力,也就是為下游提供離線和實(shí)時(shí)的兩種數(shù)倉(cāng)能力。為了方便大家實(shí)現(xiàn)跨離線和實(shí)時(shí)混合使用的場(chǎng)景,需要進(jìn)行標(biāo)準(zhǔn)化的工作,也就是離線輸出的字段、定義、口徑、格式和實(shí)時(shí)數(shù)據(jù)要盡可能一致,即實(shí)時(shí)數(shù)據(jù)向離線數(shù)據(jù)看齊。
同時(shí),數(shù)倉(cāng)在提供數(shù)據(jù)本身的能力之外,我們還要維護(hù)整個(gè)公司級(jí)別的指標(biāo)體系和統(tǒng)一維度,讓所有的數(shù)據(jù)系統(tǒng)平臺(tái)和都會(huì)對(duì)接到統(tǒng)一的維度指標(biāo)體系。而且,為了幫助數(shù)倉(cāng)建設(shè)過(guò)程中的數(shù)據(jù)建模和統(tǒng)計(jì)指標(biāo)的管理,我們建設(shè)了一個(gè)對(duì)應(yīng)的數(shù)據(jù)平臺(tái),也是按照數(shù)據(jù)規(guī)范的標(biāo)準(zhǔn)建設(shè),以此來(lái)支持使用方使用平臺(tái)依照規(guī)范去建設(shè)數(shù)倉(cāng)的流程化工作。
2、Pingback體系
Pingback的體系就是投遞體系,那么具體為什么要做這個(gè)事情呢?
投遞工作面臨的問(wèn)題主要有以下幾個(gè)點(diǎn):
- 缺乏整體的規(guī)劃,投遞數(shù)據(jù)使用難度大。就是大家可能在使用的過(guò)程中說(shuō),在不同業(yè)務(wù)當(dāng)中同樣的字段不一樣,或者不一樣的還以同樣的字段,或者在同一個(gè)業(yè)務(wù)因?yàn)闀r(shí)間的前后性,在一年前做的字段還有用但一年之后它就代表了另外一種含義,又或者產(chǎn)生了一個(gè)相同含義的另一個(gè)字段,這就造成了后續(xù)使用數(shù)據(jù)的難度特別大;
- 管理力度不足,后期維護(hù)成本極高。這其實(shí)也是一個(gè)雙刃劍,如果管理力度過(guò)高的話,業(yè)務(wù)在使用起來(lái)就會(huì)覺(jué)得約束性比較強(qiáng),效率就會(huì)有所降低。但如果管理力度不夠的話,就會(huì)造成一種隨用隨投的過(guò)程,最終導(dǎo)致了歷史延續(xù)性很差,維護(hù)成本極高。同時(shí),如果沒(méi)有工具和平臺(tái)去統(tǒng)一維護(hù)和管理的話,大家會(huì)以各種形式來(lái)傳遞這些信息,導(dǎo)致溝通成本也相當(dāng)高;
- 缺少共用的約束和校驗(yàn)環(huán)節(jié),投遞質(zhì)量難以保證。由于沒(méi)有一個(gè)統(tǒng)一的規(guī)范,導(dǎo)致后續(xù)對(duì)投遞質(zhì)量校驗(yàn)和監(jiān)測(cè)的過(guò)程中,也就沒(méi)有統(tǒng)一的標(biāo)準(zhǔn),最終導(dǎo)致投遞質(zhì)量難以保障;
- 字段等定義不一致,跨業(yè)務(wù)數(shù)據(jù)打通很難。作為一個(gè)公司,不同業(yè)務(wù)線的數(shù)據(jù)在各自業(yè)務(wù)線發(fā)揮的價(jià)值要遠(yuǎn)遠(yuǎn)小于數(shù)據(jù)能跨業(yè)務(wù)向打通的這種價(jià)值。所以,當(dāng)字段的這種跨業(yè)務(wù)線定義產(chǎn)生很大的差異,或者完全不一致的情況下,這種跨業(yè)務(wù)數(shù)據(jù)難打通造成的數(shù)據(jù)的價(jià)值流失特別嚴(yán)重。
3、數(shù)倉(cāng)體系
下圖右側(cè)是一個(gè)簡(jiǎn)化流程,依據(jù)Pingback規(guī)范建設(shè)Pingback管理平臺(tái),同時(shí)開(kāi)發(fā)了一整套的Pingback SDK。業(yè)務(wù)在使用SDK的時(shí)候,把這些用戶行為投遞出來(lái)并進(jìn)行收集,通過(guò)ETL輸出到測(cè)試統(tǒng)計(jì)和灰度監(jiān)測(cè)這兩個(gè)平臺(tái)上,通過(guò)兩個(gè)環(huán)節(jié)對(duì)數(shù)據(jù)質(zhì)量進(jìn)行校驗(yàn),盡可能地把投遞問(wèn)題堵截在全量發(fā)布之前。
數(shù)倉(cāng)體系幾個(gè)要解決的痛點(diǎn):
- 數(shù)據(jù)重復(fù)建設(shè)和資源浪費(fèi)。這個(gè)資源浪費(fèi)不是簡(jiǎn)簡(jiǎn)單單的存儲(chǔ)和計(jì)算資源,人力資源的浪費(fèi)可能更為明顯;
- 維度和指標(biāo)定義混亂。能描述同一個(gè)統(tǒng)計(jì)口徑指標(biāo),名稱完全不一樣,或者名稱完全一樣,但是口徑是完全不一致的,維度也會(huì)有類(lèi)似的問(wèn)題;
- 口徑不統(tǒng)一。比如說(shuō)我們?cè)谒戕D(zhuǎn)化率的時(shí)候,跨業(yè)務(wù)線的統(tǒng)一口徑,或者同一個(gè)業(yè)務(wù)不同的需求下口徑也不一致,導(dǎo)致后續(xù)的數(shù)據(jù)使用過(guò)程中,經(jīng)常出現(xiàn)數(shù)據(jù)撞車(chē)的情況,這就需要花大量人力和精力去排查解決;
- 業(yè)務(wù)處理邏輯復(fù)雜。因?yàn)槊恳粋€(gè)業(yè)務(wù)都有自己特有的業(yè)務(wù)邏輯,并且在投遞過(guò)程中可能會(huì)產(chǎn)生一些投遞問(wèn)題,所以需要在數(shù)據(jù)處理過(guò)程中把這些問(wèn)題修復(fù)掉。但是,修復(fù)的過(guò)程如果沒(méi)有一個(gè)統(tǒng)一的處理節(jié)點(diǎn),就會(huì)造成每一處下游使用時(shí)都要做額外的處理,大大提高了業(yè)務(wù)處理的邏輯復(fù)雜度;
- 數(shù)據(jù)質(zhì)量參差不齊。因?yàn)榇蠹腋髯匀?gòu)建自己的數(shù)據(jù)產(chǎn)出流程,數(shù)據(jù)質(zhì)量參差不齊,越底層數(shù)據(jù)的質(zhì)量問(wèn)題對(duì)下游的影響度就越大;
- 數(shù)據(jù)使用的溝通成本高。在缺少規(guī)劃的背景下,接收到一個(gè)或一批數(shù)據(jù)需求時(shí),都會(huì)輸出一些新的數(shù)據(jù)表或者數(shù)據(jù)產(chǎn)出。在后續(xù)復(fù)用的情況下,沒(méi)有一個(gè)統(tǒng)一標(biāo)準(zhǔn)去維護(hù)和管理,或者我們?cè)诮ㄔO(shè)數(shù)據(jù)的過(guò)程中也沒(méi)有統(tǒng)一標(biāo)準(zhǔn),就會(huì)造成使用過(guò)程中也需要去反復(fù)地溝通和確認(rèn),才能真正找到對(duì)應(yīng)的數(shù)據(jù),而且找到的數(shù)據(jù)也不見(jiàn)得口徑一定一致。
4、數(shù)倉(cāng)平臺(tái)
數(shù)倉(cāng)平臺(tái)主要是為了做業(yè)務(wù)建模、數(shù)據(jù)建模、物理建模、維度管理、指標(biāo)管理和數(shù)倉(cāng)管理。
數(shù)倉(cāng)平臺(tái)的特性:
- 數(shù)據(jù)表創(chuàng)建的約束性:比如我們需要對(duì)表有的命名規(guī)范要求,如果沒(méi)有一個(gè)工具去管理,可能會(huì)因?yàn)榇蠹覍?duì)規(guī)范的理解不一致,最終導(dǎo)致落地過(guò)程中依然存在各種各樣的差異性;
- 數(shù)據(jù)信息的可描述性:指在創(chuàng)建表的過(guò)程中,為了快速地滿足業(yè)務(wù),很少去添加一些相關(guān)的描述信息,導(dǎo)致數(shù)據(jù)缺少描述性。所以需要通過(guò)平臺(tái),要求用戶在數(shù)據(jù)創(chuàng)建的過(guò)程中把信息描述的足夠精細(xì),方便后續(xù)的數(shù)據(jù)使用過(guò)程;
- 數(shù)據(jù)建模體系的完整性:指我們需要一個(gè)三步的建模過(guò)程,即業(yè)務(wù)建模后,有對(duì)應(yīng)的數(shù)據(jù)建模;數(shù)據(jù)建模之后,針對(duì)這個(gè)數(shù)據(jù)建模,有不同的物理建模的形式。整體是一個(gè)流程化的工作,避免用戶為了快速地滿足業(yè)務(wù)需求跳過(guò)某些過(guò)程,最終導(dǎo)致建模的擴(kuò)展性較差;
- 數(shù)據(jù)關(guān)系的維度與指標(biāo)管理的系統(tǒng)性:通過(guò)提供一套統(tǒng)一的維度和指標(biāo)管理體系來(lái)作為一個(gè)中心,對(duì)外輸出統(tǒng)一的指標(biāo)和維度,讓大家在使用的過(guò)程中,可以使用這些標(biāo)準(zhǔn)化后的并且集中管理的元數(shù)據(jù);
- 數(shù)據(jù)關(guān)系的可追溯性:是指通過(guò)數(shù)倉(cāng)建設(shè)、建模的過(guò)程,促使我們后續(xù)數(shù)據(jù)表和字段的相互關(guān)系是有記錄可查詢的,也就是我們所說(shuō)的數(shù)據(jù)血緣關(guān)系。
5、離線數(shù)倉(cāng)架構(gòu)
下面是數(shù)倉(cāng)的簡(jiǎn)化架構(gòu),主要是體現(xiàn)了離線數(shù)倉(cāng)部分。其中帶顏色的一部分是統(tǒng)一數(shù)倉(cāng),其他的淺顏色的就是一些數(shù)據(jù)應(yīng)用,包括數(shù)據(jù)集市和主題數(shù)倉(cāng)。
6、大數(shù)據(jù)平臺(tái)
最后一個(gè)大方向就是大數(shù)據(jù)平臺(tái):
我們大數(shù)據(jù)平臺(tái)經(jīng)歷了五個(gè)階段,第一個(gè)階段和第二個(gè)階段聯(lián)系更加緊密:
開(kāi)發(fā):我們?cè)诘谝浑A段完成了整個(gè)數(shù)據(jù)開(kāi)發(fā)的平臺(tái)化、可視化能力,降低了開(kāi)發(fā)門(mén)檻,并提升開(kāi)發(fā)標(biāo)準(zhǔn)化。
運(yùn)維:在開(kāi)發(fā)之后,需要提升任務(wù)的管理和運(yùn)維能力。通過(guò)建設(shè)運(yùn)維管理模塊的建設(shè),保證用戶更方便地對(duì)任務(wù)進(jìn)行管理,并且對(duì)任務(wù)產(chǎn)出的穩(wěn)定性和數(shù)據(jù)產(chǎn)出的時(shí)效性實(shí)現(xiàn)了有效的監(jiān)控。
質(zhì)量:在提供了數(shù)據(jù)開(kāi)發(fā)和管理相關(guān)能力之后,需要進(jìn)一步對(duì)數(shù)據(jù)產(chǎn)出進(jìn)行質(zhì)量校驗(yàn),避免生產(chǎn)出的數(shù)據(jù)在未關(guān)注數(shù)據(jù)質(zhì)量的情況下直接被使用,造成數(shù)據(jù)問(wèn)題的快速擴(kuò)散。
數(shù)據(jù)質(zhì)量這一部分主要是為了及早地發(fā)現(xiàn)質(zhì)量問(wèn)題,盡可能地把問(wèn)題解決在數(shù)據(jù)鏈路的更上游的階段,避免造成數(shù)據(jù)的生產(chǎn)延遲和資源浪費(fèi)。
使用:數(shù)據(jù)使用也是一個(gè)數(shù)據(jù)發(fā)現(xiàn)的過(guò)程。比如生產(chǎn)了很多數(shù)據(jù),如何讓用戶看到這些數(shù)據(jù),并將其更好地應(yīng)用在業(yè)務(wù)需求當(dāng)中。
針對(duì)這個(gè)痛點(diǎn),我們完成數(shù)據(jù)圖譜模塊的發(fā)布,把各種的數(shù)據(jù)元信息進(jìn)行收集、加工、管理,最終把完整的數(shù)據(jù)信息以一種更友好的形式提供出來(lái),幫助大家快速地發(fā)現(xiàn)數(shù)據(jù),進(jìn)一步去了解數(shù)據(jù)元信息、快速準(zhǔn)確地使用數(shù)據(jù)。
治理:是數(shù)據(jù)生態(tài)的最后一個(gè)環(huán)節(jié),也是打造健康生態(tài)閉環(huán)的重要部分。有的公司可能是把治理放到比較靠前的環(huán)節(jié),但是在一些場(chǎng)景下,比如說(shuō)業(yè)務(wù)快速發(fā)展的過(guò)程中,治理往往是跟不上業(yè)務(wù)需求的。
所以我們采取的方式是,等業(yè)務(wù)發(fā)展到一定程度,再去補(bǔ)充數(shù)據(jù)治理的能力,對(duì)存量去治理,對(duì)增量去管控。治理工作的內(nèi)容主要包括對(duì)數(shù)據(jù)和任務(wù)進(jìn)行日常審計(jì),然后通過(guò)數(shù)據(jù)血緣和使用情況,對(duì)數(shù)據(jù)的冗余度進(jìn)行有效評(píng)估,并進(jìn)行相應(yīng)的優(yōu)化,以減少資源和人力的浪費(fèi)。同時(shí)在生產(chǎn)過(guò)程中,如果出現(xiàn)生產(chǎn)不穩(wěn)定的情況,我們也可以快速地發(fā)現(xiàn)問(wèn)題,進(jìn)而優(yōu)化整個(gè)的生產(chǎn)鏈路,提高整個(gè)數(shù)據(jù)生態(tài)的健康度。
7、數(shù)據(jù)平臺(tái)架構(gòu)
這就是數(shù)據(jù)平臺(tái)的一個(gè)大體的架構(gòu):
最底層是一個(gè)數(shù)據(jù)層,比如說(shuō)我們的投遞服務(wù)器的日志,包括業(yè)務(wù)的數(shù)據(jù)或者其他數(shù)據(jù)來(lái)源,通過(guò)我們的采集層和傳輸層達(dá)到我們的計(jì)算層。計(jì)算層的話,更多的是大數(shù)據(jù)集群服務(wù),也包括一些任務(wù)調(diào)度能力;再上層是我們所提到的平臺(tái)層,包括離線和流式任務(wù)的開(kāi)發(fā)管理、機(jī)器學(xué)習(xí)平臺(tái)、數(shù)倉(cāng)平臺(tái),然后下面是對(duì)于整個(gè)的數(shù)據(jù)的ETL的一個(gè)平臺(tái)化的處理,還有外部數(shù)據(jù)的一個(gè)同步能力的模塊,稱為數(shù)據(jù)集成。在擁有這些開(kāi)發(fā)能力或管理能力的同時(shí),我們還需要對(duì)投遞管理、數(shù)據(jù)安全、數(shù)據(jù)質(zhì)量、數(shù)據(jù)圖譜做一些有效的建設(shè),并且在整個(gè)數(shù)據(jù)體系中去做數(shù)據(jù)治理工作。最終是以即席查詢、實(shí)時(shí)分析,數(shù)據(jù)服務(wù)、元數(shù)據(jù)服務(wù)多種形式對(duì)下游提供服務(wù)能力。
四、應(yīng)用場(chǎng)景
數(shù)據(jù)中臺(tái)的應(yīng)用場(chǎng)景,其實(shí)面向不同階段來(lái)提供不同的接入方式:
- 第一個(gè)階段是統(tǒng)一化的形式。我們有一套通用的模板,它的優(yōu)點(diǎn)和缺點(diǎn)都很明顯,優(yōu)點(diǎn)是接入起來(lái)很簡(jiǎn)單,缺點(diǎn)就是不夠個(gè)性化和定制化,只能支持這種通用的數(shù)據(jù)能力。所以它比較適合于業(yè)務(wù)初期,能夠進(jìn)行快速接入,并且自動(dòng)化地完成這種數(shù)據(jù)的處理和服務(wù);
- 第二個(gè)階段是個(gè)性化的能力。也就是說(shuō),我們把整個(gè)流程確定下來(lái),業(yè)務(wù)在使用過(guò)程中可以針對(duì)某些環(huán)節(jié)做定制化的開(kāi)發(fā),拓展現(xiàn)存數(shù)據(jù)模塊的能力來(lái)滿足一些個(gè)性化需求,所以它更適用于業(yè)務(wù)的成長(zhǎng)期的階段;
- 第三個(gè)階段是定制化的能力。定制化更多面向一些特別成熟的業(yè)務(wù),也就是對(duì)于數(shù)據(jù)這一塊的需求有多方面的、深層次的使用場(chǎng)景,并且通用的和個(gè)性化的架構(gòu)已經(jīng)不足以滿足數(shù)據(jù)需求的情況下,可以采用定制化的能力。定制化能力也就是我們提供數(shù)據(jù)模塊化的能力,然后業(yè)務(wù)再根據(jù)自己的需求去對(duì)應(yīng)選取這些模塊化能力,并進(jìn)行組裝和擴(kuò)展,來(lái)滿足自己定制化的需求。
以下是一個(gè)自動(dòng)化接入流程:
新業(yè)務(wù)接入,做出一個(gè)產(chǎn)品,然后使用我們投遞的SDK去進(jìn)行投遞,通過(guò)平臺(tái)的工具進(jìn)行投遞的管理,最終數(shù)據(jù)采集、存儲(chǔ)、監(jiān)控,到統(tǒng)一數(shù)倉(cāng)的加工,數(shù)據(jù)結(jié)果的輸出,這整一個(gè)流程都是有統(tǒng)一的模板去執(zhí)行的。比如我們常見(jiàn)的DAU、留存、新增、轉(zhuǎn)化率、點(diǎn)擊率,其實(shí)靠通用模板就能達(dá)到。
最終輸出的形式,比如用戶行為分析或者我們提供不同層級(jí)的數(shù)據(jù)產(chǎn)出物,像是MID層的聚合數(shù)據(jù)或者DWD層的明細(xì)數(shù)據(jù)等。用戶可以通過(guò)自主查詢的能力對(duì)數(shù)據(jù)進(jìn)行查詢和使用,同時(shí)業(yè)務(wù)線也會(huì)有自己的核心報(bào)表或者通用報(bào)表,可以通過(guò)這套自動(dòng)化的流程產(chǎn)出,最終反哺到新業(yè)務(wù)當(dāng)中。
這是一個(gè)快速,并且成本極其低的一個(gè)過(guò)程,更適用于業(yè)務(wù)的初期階段。
以下是一個(gè)定制化的接入過(guò)程:
定制化的用戶更多的可以參與到數(shù)據(jù)的整個(gè)處理過(guò)程當(dāng)中。比如說(shuō)生產(chǎn)和定制化的開(kāi)發(fā)、業(yè)務(wù)基于統(tǒng)一數(shù)倉(cāng)建設(shè)自己的數(shù)倉(cāng)、關(guān)注自己的數(shù)據(jù)質(zhì)量、輸出數(shù)據(jù)結(jié)果、數(shù)據(jù)業(yè)務(wù)集市,最終能輸出成自助查詢的一些數(shù)據(jù)元。
然后,一些定制化的報(bào)表、用戶行為的分析,都也可以去定制化自己的元數(shù)據(jù)服務(wù)和數(shù)據(jù)服務(wù)能力來(lái)對(duì)接到自己的平臺(tái)或者服務(wù)上,這是一個(gè)相對(duì)來(lái)說(shuō)比較定制化的過(guò)程。大家可以在某一個(gè)環(huán)節(jié)或者是某些環(huán)節(jié)去接入,更多地把自己的一個(gè)業(yè)務(wù)的特點(diǎn)應(yīng)用到數(shù)據(jù)的整個(gè)處理過(guò)程當(dāng)中。
Q & A
Q1:請(qǐng)問(wèn)沒(méi)有做過(guò)數(shù)據(jù)倉(cāng)庫(kù),可以一步到位建設(shè)數(shù)據(jù)中臺(tái)嗎?
不建議這么做,數(shù)據(jù)工作的核心是數(shù)據(jù),而數(shù)據(jù)倉(cāng)庫(kù)是數(shù)據(jù)的主要組織形式,是應(yīng)該最早建設(shè)起來(lái)的,可以脫離數(shù)據(jù)中臺(tái)的其他部分發(fā)揮數(shù)據(jù)價(jià)值;同時(shí)建設(shè)數(shù)據(jù)中臺(tái)工作是一個(gè)長(zhǎng)期迭代的過(guò)程,也不會(huì)是一步到位的。
Q2:數(shù)倉(cāng)到數(shù)據(jù)中臺(tái),和大數(shù)據(jù)平臺(tái)到數(shù)據(jù)中臺(tái),哪種路徑會(huì)更好些?
這兩個(gè)方向并不沖突,數(shù)據(jù)中臺(tái)更著重的是數(shù)據(jù)的通用能力輸出,無(wú)論是數(shù)倉(cāng)還是大數(shù)據(jù)平臺(tái)都是數(shù)據(jù)中臺(tái)不可或缺的重要組成部分;如果非要選擇一個(gè)的話,我建議先建數(shù)倉(cāng),因?yàn)榇髷?shù)據(jù)平臺(tái)是可以通過(guò)直接使用大數(shù)據(jù)集群完成相關(guān)數(shù)據(jù)工作的能力。
Q3:建設(shè)數(shù)據(jù)倉(cāng)庫(kù)的方法論是什么?主要用到什么系統(tǒng)?
主要是依賴Kimball的多維建模方法論,但是針對(duì)一些實(shí)體分析的場(chǎng)景,如用戶數(shù)倉(cāng)、內(nèi)容數(shù)倉(cāng)等等,則需要引入Anchor建模方式,這兩種建模方式是目前我們主要采用的;我們目前是自建的數(shù)倉(cāng)平臺(tái),是依賴自身制定的數(shù)倉(cāng)規(guī)范進(jìn)行建設(shè)的,主要有建模流程、模型管理、維度管理和指標(biāo)管理等子模塊。
Q4:數(shù)據(jù)倉(cāng)庫(kù)里,拉鏈表多嗎?
目前拉鏈表較少,拉鏈表的生產(chǎn)和使用成本相對(duì)較高,而使用的場(chǎng)景又相對(duì)有限;如果確實(shí)有這方面的需求,可以考慮在特定的場(chǎng)景對(duì)快照表進(jìn)行相應(yīng)的處理,以實(shí)現(xiàn)拉鏈表所提供的能力。
Q5:請(qǐng)問(wèn)投遞怎么理解?是埋點(diǎn)或者訂閱嗎?主要涉及到哪些工作?
投遞可以理解為用戶行為的記錄,包括用戶啟動(dòng)APP、播放視頻、瀏覽頁(yè)面和點(diǎn)擊內(nèi)容等,可以記錄用戶在APP內(nèi)的操作行為;主要涉及投遞設(shè)計(jì)和管理,投遞出的日志收集和ETL,包括用于監(jiān)控投遞質(zhì)量的統(tǒng)計(jì)平臺(tái)等。
Q6:請(qǐng)問(wèn)什么是埋點(diǎn)呢?埋點(diǎn)丟失時(shí)預(yù)警有做嗎?
埋點(diǎn)可以理解為用戶行為的記錄,即在用戶的某種行為下會(huì)觸發(fā)行為日志的投遞;埋點(diǎn)丟失的預(yù)警可以有兩個(gè)角度,一個(gè)是功能角度,即用戶級(jí)別的監(jiān)測(cè),這依賴前端的投遞SDK,用于記錄投遞失敗的次數(shù)和信息;另一個(gè)是統(tǒng)計(jì)角度,即從相對(duì)粗的粒度進(jìn)行行為統(tǒng)計(jì),根據(jù)其他事件或者歷史情況進(jìn)行對(duì)比,確認(rèn)數(shù)據(jù)是否有丟失。
Q7:數(shù)據(jù)重跑是怎樣的?
數(shù)據(jù)重跑的場(chǎng)景可以分為幾種情況,數(shù)據(jù)修復(fù)、口徑變化、新增指標(biāo)等;我們會(huì)通過(guò)數(shù)據(jù)平臺(tái)的任務(wù)管理來(lái)創(chuàng)建重跑任務(wù),指定重跑時(shí)間段、相關(guān)參數(shù)和并行度等,然后執(zhí)行重跑任務(wù),最后在數(shù)據(jù)重跑后進(jìn)行數(shù)據(jù)的驗(yàn)證。
Q8:數(shù)據(jù)質(zhì)量平臺(tái)稽核任務(wù)的執(zhí)行,對(duì)接的數(shù)據(jù)存儲(chǔ)一般用哪些?關(guān)系型數(shù)據(jù)庫(kù)還是Hive?
數(shù)據(jù)中臺(tái)的數(shù)據(jù)主要是離線和實(shí)時(shí)兩種形式,離線數(shù)據(jù)主要以Hive為載體,其中包括從關(guān)系型數(shù)據(jù)庫(kù)接入的業(yè)務(wù)數(shù)據(jù);實(shí)時(shí)數(shù)據(jù)主要以Kafka為載體;數(shù)據(jù)質(zhì)量平臺(tái)主要針對(duì)這兩種形式的數(shù)據(jù)進(jìn)行數(shù)據(jù)稽核。
Q9:在中臺(tái)上如何開(kāi)放目錄或者地圖,讓業(yè)務(wù)方或者其他應(yīng)用開(kāi)發(fā)者快速獲取所需數(shù)據(jù)?
數(shù)據(jù)中臺(tái)中有數(shù)據(jù)圖譜模塊,以搜索和地圖等形式將元數(shù)據(jù)以更為合理的形式輸出,方便用戶發(fā)現(xiàn)數(shù)據(jù),并在平臺(tái)一站式的完成數(shù)據(jù)的權(quán)限申請(qǐng)和使用。
Q10:數(shù)據(jù)治理是放到數(shù)據(jù)服務(wù)之后嗎?數(shù)據(jù)治理主要是治理哪塊?數(shù)據(jù)質(zhì)量?數(shù)據(jù)標(biāo)準(zhǔn)?
數(shù)據(jù)治理是貫穿整個(gè)數(shù)據(jù)生命周期的,和數(shù)據(jù)服務(wù)沒(méi)有前后關(guān)系,可以認(rèn)為數(shù)據(jù)服務(wù)也是在數(shù)據(jù)治理的范疇之內(nèi);數(shù)據(jù)治理主要包括數(shù)據(jù)質(zhì)量的分析、生產(chǎn)鏈路穩(wěn)定性的分析、資源利用分析、數(shù)據(jù)標(biāo)準(zhǔn)化分析和使用審計(jì)等,數(shù)據(jù)治理的目的是為了保障數(shù)據(jù)穩(wěn)定高質(zhì)的進(jìn)行生產(chǎn),并推進(jìn)整體的資源優(yōu)化,同時(shí)防止數(shù)據(jù)的泄露等。
Q11:對(duì)于數(shù)據(jù)生命周期怎么處理?有做冷熱備份嗎?
數(shù)據(jù)有不同的資產(chǎn)等級(jí),需要根據(jù)不同的資產(chǎn)等級(jí)制定TTL的設(shè)定;同時(shí)可以對(duì)數(shù)據(jù)進(jìn)行垂直裁剪,將時(shí)效性要求較高的部分進(jìn)行裁剪,以降低數(shù)據(jù)存儲(chǔ)的成本;另外,為了滿足對(duì)歷史數(shù)據(jù)的追溯,可以將使用頻率極低的數(shù)據(jù)存儲(chǔ)到冷備,但需要考慮冷備的成本,包括恢復(fù)數(shù)據(jù)的經(jīng)濟(jì)成本和時(shí)間成本。
Q12:請(qǐng)問(wèn)支持為多租戶分配平臺(tái)資源、工具、開(kāi)發(fā)嗎?
支持,這是數(shù)據(jù)平臺(tái)必須的能力。
Q13:愛(ài)奇藝用到的大數(shù)據(jù)集群是開(kāi)源的還是CDH?
主要是基于CDH的,并在此基礎(chǔ)上進(jìn)行了定制化的開(kāi)發(fā),包括內(nèi)外部的各種補(bǔ)丁。
Q14:任務(wù)調(diào)度系統(tǒng)是自研的嗎?還是用的開(kāi)源的,哪個(gè)會(huì)比較好呢?
目前任務(wù)調(diào)度系統(tǒng)是基于oozie進(jìn)行二次開(kāi)發(fā)的,主要是增加了一些參數(shù)和打通其他的數(shù)據(jù)中臺(tái)組件;目前主流的調(diào)度主要是oozie、airflow和azkaban等,各有優(yōu)勢(shì),主要還是得看具體的使用場(chǎng)景和取舍,進(jìn)而選擇合適的調(diào)度系統(tǒng)。
Q15:請(qǐng)問(wèn)下老師,大數(shù)據(jù)平臺(tái)目前對(duì)外輸出嗎?
暫時(shí)還沒(méi)有對(duì)外輸出,由于每個(gè)公司的具體場(chǎng)景存在差異性,數(shù)據(jù)中臺(tái)的體現(xiàn)形式也會(huì)稍有不同,不過(guò)后期可能會(huì)通過(guò)文章或者書(shū)籍的方式對(duì)外輸出我們的想法和建設(shè)感受。
愛(ài)奇藝數(shù)據(jù)中臺(tái)負(fù)責(zé)人
目前主要負(fù)責(zé)愛(ài)奇藝數(shù)據(jù)中臺(tái)的規(guī)劃和建設(shè),對(duì)廣告業(yè)務(wù)和大數(shù)據(jù)體系都有一定的了解;
北郵本碩畢業(yè),先后在百度、阿里巴巴、墨跡和愛(ài)奇藝等多家公司從事廣告和大數(shù)據(jù)方向的工作。