愛奇藝數(shù)據(jù)中臺的建設(shè)實踐
分享嘉賓:馬金韜 愛奇藝 數(shù)據(jù)中臺負(fù)責(zé)人
編輯整理:陳國梅
出品平臺:DataFunTalk
定位和價值
愛奇藝數(shù)據(jù)中臺介紹
數(shù)據(jù)中臺統(tǒng)一服務(wù)層
應(yīng)用場景
首先和大家分享下數(shù)據(jù)中臺的定位和價值,數(shù)據(jù)中臺的定位主要是為了解決大數(shù)據(jù)快速發(fā)展過程中所遇到的各種棘手問題。
1. 現(xiàn)狀和問題

大數(shù)據(jù)發(fā)展的現(xiàn)狀特點主要歸納為以下幾點:
基礎(chǔ)設(shè)施發(fā)展的速度過快,導(dǎo)致在使用的層面需要快速響應(yīng),快速的迭代,從而給業(yè)務(wù)使用和數(shù)據(jù)挖掘帶來很高的成本;
數(shù)據(jù)量級爆發(fā)式增長,對于存儲、計算以及一些特殊場景的優(yōu)化帶來很大的挑戰(zhàn);
應(yīng)用場景的融合疊加,以往數(shù)據(jù)產(chǎn)品主要用于報表分析,再進(jìn)行應(yīng)用分析,現(xiàn)在數(shù)據(jù)和AI技術(shù)深度融合,對大數(shù)據(jù)應(yīng)用以及管理有更高的要求;
隨著業(yè)務(wù)發(fā)展節(jié)奏越來越快,對數(shù)據(jù)時效性的要求也越來越高,已經(jīng)不能止步于T+1的離線數(shù)據(jù),或是H+1的數(shù)據(jù),可能現(xiàn)在需要的是分鐘級,甚至是秒級的延遲速度。
針對大數(shù)據(jù)發(fā)展特點遇到的各種問題,包括一些特殊業(yè)務(wù)場景中遇到的特例問題,在此僅羅列一些比較通用的問題:
數(shù)據(jù)口徑的不一致;
數(shù)據(jù)質(zhì)量的可靠性;
數(shù)據(jù)使用門檻高;
資源消耗浪費嚴(yán)重;
數(shù)據(jù)資產(chǎn)管理混亂;
數(shù)據(jù)接入成本高;
數(shù)據(jù)流通性差;
數(shù)據(jù)生產(chǎn)鏈路長;
數(shù)據(jù)業(yè)務(wù)打通難;
2. 數(shù)據(jù)中臺的定義

中臺是一個企業(yè)架構(gòu),是把一些通用的能力進(jìn)行抽象。數(shù)據(jù)中臺,就是對數(shù)據(jù)能力進(jìn)行抽象,并且把數(shù)據(jù)的治理以及資產(chǎn)的管理統(tǒng)一抽象出一種通用的能力,把這種數(shù)據(jù)使用的門檻降到一定程度,讓更多的業(yè)務(wù),更多的用戶可以通過數(shù)據(jù)去挖掘一些業(yè)務(wù)價值。
數(shù)據(jù)中臺如何解決問題可從以下八個點展開:
① 打造一站式數(shù)據(jù)開發(fā)平臺,這個方式是為了解決因大數(shù)據(jù)基礎(chǔ)設(shè)施快速發(fā)展,面對不同的場景下需要大家用不同的技術(shù)手段去處理數(shù)據(jù),然而設(shè)置零散性的數(shù)據(jù)組織形式會導(dǎo)致數(shù)據(jù)使用效率以及維護(hù)效率特別低。
② 建立統(tǒng)一的元數(shù)據(jù)中心,以往企業(yè)更關(guān)注數(shù)據(jù)生產(chǎn),在管理上相對來說比較薄弱,因此需要建立統(tǒng)一的數(shù)據(jù)中心對數(shù)據(jù)的元數(shù)據(jù)元信息進(jìn)行統(tǒng)一的管理,后續(xù)會為更多使用場景提供元數(shù)據(jù)。
③ 提供配置化的數(shù)據(jù)服務(wù)托管能力,就是數(shù)據(jù)中臺的統(tǒng)一服務(wù)化建設(shè)。
④ 建設(shè)覆蓋全生命周期的數(shù)據(jù)治理體系,對于大數(shù)據(jù)產(chǎn)生的價值以及成本,需要更細(xì)粒度的管制,所以要建立一個覆蓋全生命周期的數(shù)據(jù)治理體系。
⑤ 制定數(shù)據(jù)生產(chǎn)和采集標(biāo)準(zhǔn),數(shù)據(jù)生產(chǎn)和采集的過程是業(yè)務(wù)和用戶接觸數(shù)據(jù)中臺的第一個環(huán)節(jié),如何把數(shù)據(jù)生產(chǎn)標(biāo)準(zhǔn)化,如何把數(shù)據(jù)的采集和輸入標(biāo)準(zhǔn)化對用戶來說是節(jié)省成本的一個關(guān)鍵環(huán)節(jié)。
⑥ 建立一個數(shù)據(jù)湖,數(shù)據(jù)倉庫及周邊體系,把數(shù)據(jù)作為一個中心化的組織形式來為公司或者各個業(yè)務(wù)的產(chǎn)品使用場景提供環(huán)境。
⑦ 推動數(shù)據(jù)中心化,傳統(tǒng)的數(shù)據(jù)結(jié)構(gòu)往往是A依賴于B,B依賴于C,C可能依賴于A的網(wǎng)狀引用結(jié)構(gòu),這個過程會帶來很多溝通的成本以及使用上的理解偏差,包括各自維護(hù)自己的數(shù)據(jù),導(dǎo)致存儲成本和管理方面成本相對較高.對此如何加快數(shù)據(jù)交換,需要運營中心化的建設(shè),來幫助數(shù)據(jù)的生產(chǎn)方和使用方降低使用和維護(hù)的成本,并作為一個數(shù)據(jù)交換的中心。
⑧ 通過AI能力替代人工的反復(fù)性工作,通過AI技術(shù)的融合建設(shè)一個自動化平臺,讓用戶可以方便快捷地使用這種AI能力,同時需要把AI能力賦能到我們的數(shù)據(jù)平臺中,比如數(shù)據(jù)質(zhì)量的監(jiān)測、數(shù)據(jù)使用的分析,包括數(shù)據(jù)倉庫建設(shè)的健康度,都需要AI能力去覆蓋。
1. 愛奇藝數(shù)據(jù)中臺定位

愛奇藝數(shù)據(jù)中臺主要服務(wù)于業(yè)務(wù)前臺和業(yè)務(wù)中臺,數(shù)據(jù)中臺主要由數(shù)據(jù)的生產(chǎn)接入,數(shù)據(jù)的處理加工,數(shù)據(jù)資產(chǎn),數(shù)據(jù)治理,以及最終對外提供數(shù)據(jù)服務(wù)組成。數(shù)據(jù)中臺主要的作用分以下四個方面展開:
① 將數(shù)據(jù)的生產(chǎn)收集處理存儲和服務(wù)等環(huán)節(jié)進(jìn)行封裝,面向于不同層級的用戶和業(yè)務(wù),提供不同的服務(wù)形式??梢越忉尀椋嫦虿煌瑢蛹壡揖邆湟欢ǖ臄?shù)據(jù)開發(fā)能力的用戶,可能需要寫SQL對數(shù)據(jù)表進(jìn)行直接的查詢,或者做更深度的數(shù)據(jù)開發(fā),比如比較復(fù)雜的數(shù)據(jù)處理流程,數(shù)據(jù)開發(fā)平臺支持用戶通過拖拉拽的方式構(gòu)建復(fù)雜工作流去DAG。數(shù)據(jù)中臺在對接業(yè)務(wù)前臺時,如果直接使用數(shù)據(jù)表的成本會比較高,因此需要將數(shù)據(jù)封裝成數(shù)據(jù)服務(wù),并提供數(shù)據(jù)服務(wù)能力去幫助用戶通過這種配置化的能力達(dá)到業(yè)務(wù)系統(tǒng)的對接能力。
② 在數(shù)據(jù)標(biāo)準(zhǔn)化的過程中,防止數(shù)據(jù)的重復(fù)建設(shè),以及避免口徑問題,來提高數(shù)據(jù)的使用效率,防止大家在從各種口徑問題上花費過多的精力,或者避免因為口徑問題帶來一些決策上的錯誤。
③ 對于數(shù)據(jù)進(jìn)行全鏈路的治理,來保證數(shù)據(jù)的生產(chǎn)使用,使得對資源的利用,有比較好的保障。
④ 最終的目的,屏蔽數(shù)據(jù)處理的復(fù)雜性,讓用戶可以更方便更高效地使用和發(fā)現(xiàn)數(shù)據(jù),滿足業(yè)務(wù)快速發(fā)展需求。
2. 愛奇藝數(shù)據(jù)中臺組成

接下來介紹愛奇藝數(shù)據(jù)中臺組成,這個分層組成的粒度較粗,但完全能覆蓋到數(shù)據(jù)中臺應(yīng)該具備的能力。
架構(gòu)最底層是大數(shù)據(jù)基礎(chǔ)設(shè)施,結(jié)合云技術(shù),可提供標(biāo)準(zhǔn)化、可彈性高、可用的統(tǒng)一云服務(wù)的能力。云服務(wù)之上有兩部分,一個是統(tǒng)一數(shù)據(jù)生產(chǎn)和接入,另一個是統(tǒng)一數(shù)據(jù)的開發(fā)平臺。往上是統(tǒng)一的數(shù)據(jù)組織形式,主要是數(shù)據(jù)湖,數(shù)據(jù)倉庫以及其他的一些數(shù)據(jù)組織形式。統(tǒng)一數(shù)據(jù)層上方是本文主要的分析方向——統(tǒng)一數(shù)據(jù)服務(wù)層。統(tǒng)一數(shù)據(jù)服務(wù)層有以下幾個特性,分別是可彈性、可配置化、可監(jiān)控、可組合。這其實是一個高階應(yīng)用,高階使用的方式,把一些原子的數(shù)據(jù)服務(wù)能力進(jìn)行二次或者三次組合,來完成相對復(fù)雜的數(shù)據(jù)服務(wù)。
3. 愛奇藝數(shù)據(jù)中臺特點

愛奇藝數(shù)據(jù)中臺有以下六個特點:
① 平臺化,以平臺化的形式對用戶展現(xiàn)能力,比如數(shù)據(jù)開發(fā)平臺、數(shù)據(jù)服務(wù)平臺、數(shù)據(jù)治理平臺、以及一些數(shù)據(jù)接入工具等。
② 標(biāo)準(zhǔn)化,可以體現(xiàn)在多個方面,一方面是流程的標(biāo)準(zhǔn)化,包括如何采集數(shù)據(jù),如何存儲數(shù)據(jù),然后如何管理對外交換的數(shù)據(jù)。另一方面,是對數(shù)據(jù)資產(chǎn)本身的標(biāo)準(zhǔn)化,比如數(shù)據(jù)表的命名、庫的命名、字段的命名,還有數(shù)據(jù)倉庫相關(guān)的,比如數(shù)據(jù)模型、指標(biāo)系統(tǒng)、維度系統(tǒng)的標(biāo)準(zhǔn)化建設(shè)。打造全公司標(biāo)準(zhǔn)的統(tǒng)一的存儲平臺以及指標(biāo)系統(tǒng)和維度系統(tǒng),所有的數(shù)據(jù)體系可能都依賴于此。
③ 中心化,數(shù)據(jù)中臺相當(dāng)于把公司數(shù)據(jù)放入中轉(zhuǎn)站,把數(shù)據(jù)匯總和分發(fā),然后讓數(shù)據(jù)得以統(tǒng)一管理,進(jìn)而高效管理,同時對數(shù)據(jù)使用和安全情況做后續(xù)的審計。
④ 智能化, 體現(xiàn)在兩方面,一方面是提供一個平臺,智能化平臺(AI平臺),讓用戶可以通過拖拉拽的方式快速地獲得一些簡單的AI機器學(xué)習(xí)的能力或者深度學(xué)習(xí)的能力。另一方面是在中臺內(nèi)部體現(xiàn)智能化能力,比如把智能的預(yù)測能力用于數(shù)據(jù)監(jiān)測、數(shù)據(jù)分析上。
⑤ 服務(wù)化,是指把數(shù)據(jù)中臺的能力通過服務(wù)的形式對系統(tǒng)推進(jìn),展現(xiàn)給業(yè)務(wù),同時在組織形式上更像公司內(nèi)部toB的一個公司,去服務(wù)于各個業(yè)務(wù)線,幫助售前、售中、售后實施數(shù)據(jù)定制方案。
⑥ 價值化,數(shù)據(jù)中臺的建設(shè)與業(yè)務(wù)目標(biāo)的關(guān)系相對模糊,所以希望能夠?qū)で笠恍┖侠淼姆绞絹砗饬拷ㄔO(shè)數(shù)據(jù)中臺的價值。
1. 統(tǒng)一服務(wù)面對的問題

接下來介紹一下愛奇藝數(shù)據(jù)中臺的統(tǒng)一服務(wù)層,統(tǒng)一服務(wù)面對的問題主要分為以下幾點:
① 數(shù)據(jù)和接口的復(fù)用性。由于傳統(tǒng)的數(shù)據(jù)使用場景更多的是直接暴露數(shù)據(jù)表或者分配權(quán)限,往往這種情況下表的改動或者遷移,都會對于下游的服務(wù)造成特別大的影響。另外,數(shù)據(jù)表本身的流通性比數(shù)據(jù)接口的流動性差,因為對接業(yè)務(wù)或?qū)忧芭_的部門,可能存在大家對于接口理解遠(yuǎn)高于對數(shù)據(jù)表的理解。
② 發(fā)現(xiàn)和理解數(shù)據(jù)。過去,愛奇藝通過各種形式維護(hù)元數(shù)據(jù),比如數(shù)據(jù)表的含義、數(shù)據(jù)表字段的定義、字段類型等描述,但是這些數(shù)據(jù)在長時間運轉(zhuǎn)下來,這些數(shù)據(jù)的信息其實逐漸的落后于實際情況,就造成了信息的缺失和不準(zhǔn)確。其次是溝通成本問題,更多的還是需要人和人溝通,這種溝通一方面溝通效率會比較差,另一方面因為人與人溝通會產(chǎn)生理解的偏差。
③ 標(biāo)準(zhǔn)和統(tǒng)一管理。對于數(shù)據(jù)接口,過去總是各自依賴于自己所需要的數(shù)據(jù),然后自己定義自己開發(fā),導(dǎo)致出現(xiàn)各式各樣的接口,在流通或者管理過程中的成本是很高的。而且往往對于一個數(shù)據(jù)資源,大家開發(fā)不同的數(shù)據(jù)接口,它的重復(fù)性會比較多,重復(fù)的概率會比較大,從而造成資源浪費嚴(yán)重。
④ 數(shù)據(jù)接入效率。過去給業(yè)務(wù)去提供一個數(shù)據(jù)表或者一個數(shù)據(jù)庫業(yè)務(wù),需要根據(jù)自身的情況去做相應(yīng)的開發(fā),然后評估服務(wù)的QPS和部署形式,以及申請域名的接口、安全網(wǎng)關(guān)等,但是這些其實都可以通過通用化的能力去解決,把效率提升起來。
⑤ 服務(wù)使用審計。以往提供的一個數(shù)據(jù)接口,可能就是A傳B、B傳C就擴散地使用起來了,但是往往這種情況會對于數(shù)據(jù)血緣的信息收集帶來特別大的影響,導(dǎo)致后續(xù)升級一些數(shù)據(jù)表或者升級數(shù)據(jù)服務(wù)的時候,缺失部分下游的信息,從而導(dǎo)致一些操作對于某些線上業(yè)務(wù)帶來額外的影響,而且有一些高精密性的數(shù)據(jù),可能也會由于這種分享式的方式導(dǎo)致安全隱患。
2. 數(shù)據(jù)服務(wù)介紹

對于數(shù)據(jù)服務(wù)的定義以及它所具備的能力有了一個初步的概括后,開始介紹愛奇藝數(shù)據(jù)服務(wù)內(nèi)容,主要有幾下六點:
① 一站式的開發(fā)和運維的能力,它可以通過SQL,可以通過配置來定義輸入輸出,并且可以和元數(shù)據(jù)中心打通,通過一些可選的方式去定義自己的數(shù)據(jù)服務(wù)。
② 全鏈路打通,因為有了數(shù)據(jù)接口到數(shù)據(jù)之間的血緣,并且依賴于現(xiàn)有數(shù)據(jù)和數(shù)據(jù)之間的血緣關(guān)系。其實從數(shù)據(jù)的生產(chǎn)到數(shù)據(jù)的加工到最終數(shù)據(jù)的使用,是一個全鏈路打通的一個狀態(tài),我們可以有效地去評估這個數(shù)據(jù)對于下游的影響情況,并且去衡量數(shù)據(jù)的價值。
③ API集市,過去的使用背景往往是大家的數(shù)據(jù)表可能是基于各自的需求去開發(fā)各自的數(shù)據(jù)接口,這種復(fù)用性很難得到保障。通過API集市的方式,把所有基于某些表的數(shù)據(jù)接口展現(xiàn)出來,以及它所對應(yīng)的輸入輸出,一個接口的元信息以更友好的形式體現(xiàn)出來。這樣,用戶再去新建或者再去尋找數(shù)據(jù)服務(wù)的時候,有可靠的統(tǒng)一的入口,可以有很好的達(dá)到接口復(fù)用的目的。
④ PULL和PUSH的這兩種能力,也是業(yè)務(wù)關(guān)注的兩種服務(wù)模式。PULL很容易理解,用戶通過發(fā)送數(shù)據(jù)訪問到數(shù)據(jù)接口,數(shù)據(jù)接口對請求進(jìn)行解析和優(yōu)化,通過各種數(shù)據(jù)源計算數(shù)據(jù),以秒或者毫秒級的響應(yīng)速度返回數(shù)據(jù)結(jié)果,但這種場景往往是面向小型的數(shù)據(jù)量。而在數(shù)據(jù)服務(wù)面向的廣大的業(yè)務(wù)當(dāng)中,有一些場景下數(shù)據(jù)的時效性要求不是極高高,不需要到秒級或者毫秒級,但可以退而取其次可以達(dá)到一個分鐘級,從而用以換取可以獲得更大數(shù)據(jù)量的結(jié)果。這種情況下, 靠PULL的形式就很難以實現(xiàn),所以需要通過PUSH回調(diào)的形式去通知調(diào)用數(shù)據(jù)服務(wù)的業(yè)務(wù),去拉取這種大數(shù)據(jù)量的數(shù)據(jù)來滿足后續(xù)業(yè)務(wù)的需求。
⑤ 邏輯模型,可以給業(yè)務(wù)或者用戶一個更低門檻的或者更容易理解的一種展現(xiàn)形式。數(shù)據(jù)表往往有一些局限性,所以需要通過一種模型的概念,也就是大家都能理解的一個文字性的描述的東西,去支持?jǐn)?shù)據(jù)接口的一個定義來解決數(shù)據(jù)復(fù)用的能力。
⑥ 數(shù)據(jù)網(wǎng)關(guān),其實一個很通用的能力,對于這種數(shù)據(jù)服務(wù),一定要提供網(wǎng)關(guān)的集成能力,以及支持認(rèn)證權(quán)限,然后限流和監(jiān)控的這一整套的服務(wù)能力。
3. 數(shù)據(jù)服務(wù)架構(gòu)

關(guān)于數(shù)據(jù)服務(wù)架構(gòu):
自上往下,最上層是最終對外提供的API集市,大家可以通過REST API的形式去訪問,查詢數(shù)據(jù)以及獲取數(shù)據(jù)。下一層是查詢引擎,產(chǎn)品群里基本上是API的接口,更多的是以一種協(xié)議的形式存在,所以在查詢引擎的最上層是有一個解析的過程。根據(jù)協(xié)議標(biāo)準(zhǔn)將數(shù)據(jù)請求進(jìn)行解析,獲取將要查詢的數(shù)據(jù)源,根據(jù)數(shù)據(jù)源信息獲取對應(yīng)的數(shù)據(jù)模型,數(shù)據(jù)模型會通過底層元數(shù)據(jù)信息映射出對應(yīng)的數(shù)據(jù)表;根據(jù)請求中的字段列表以及filter條件,最終將請求解析成一個邏輯執(zhí)行計劃,并進(jìn)一步產(chǎn)生一個物理執(zhí)行計劃,計算出最終結(jié)果封裝成響應(yīng)返回。這種調(diào)用形式其實分為兩種,一種是同步的接口形式,也就是接口API,另外一種就是異步。異步就是說定義一個異步的時候,可能要比同步的方案要定義的信息更多一些,比如說給業(yè)務(wù)方提供的一個數(shù)據(jù)接口,數(shù)據(jù)的業(yè)務(wù)方需要去定制自己的回調(diào)接口,以及制定適合自己業(yè)務(wù)后續(xù)去處理的數(shù)據(jù)存儲地址,然后填寫到數(shù)據(jù)服務(wù)的定制化接口配置界面上。當(dāng)數(shù)據(jù)請求過來之后,數(shù)據(jù)服務(wù)會把整個的接口請求轉(zhuǎn)換成一種DAG工作流的形式。因為這個數(shù)據(jù)量比較大,靠一個本地的計算已經(jīng)難以滿足,或者說是內(nèi)存上可能會存在一些瓶頸,所以把它翻譯成一種離線的DAE形式來去計算,或者是判斷其他的覆蓋能力,計算完的數(shù)據(jù),會存到用戶指定的地方,并且調(diào)用戶指定的回調(diào)接口來告知用戶,數(shù)據(jù)已經(jīng)準(zhǔn)備好,可以去某某地方拉取。這個數(shù)據(jù)存儲的最終形式就是按照用戶定義的那種結(jié)果形式去存儲,這樣供業(yè)務(wù)前臺可以快速的去拿到數(shù)據(jù)去進(jìn)行后續(xù)的處理,這些產(chǎn)品其實都是通過統(tǒng)一的查詢能力去完成。
查詢引擎的下一層是API的配置層。對API配置功能的拆解,首先是接口定義,接口的名字是什么,接口的描述以及傳入的參數(shù),輸出的結(jié)果,包括filter的條件。其次是協(xié)議的管理,不僅支持AGP的協(xié)議,還可以支持RPC的各種協(xié)議。還有異步的形勢下,需要用戶填寫自己的回調(diào)地址,或者說指定一下數(shù)據(jù)存儲的位置。
再往下是對于整個數(shù)據(jù)服務(wù)的管理模塊,主要分為數(shù)據(jù)源管理、版本管理、資源管理、流量管理等。數(shù)據(jù)源管理是對數(shù)據(jù)接口的數(shù)據(jù)服務(wù)自身的一個管理。對于資源的管理能力,體現(xiàn)在數(shù)據(jù)服務(wù)常常會消耗服務(wù)器資源,然后對接公司的QAE的這套體系,就是說一套虛擬化的一個容器。流量管理就是對于每一個服務(wù),可能都需要有一定的流量的管理措施去衡量以及動態(tài)調(diào)整服務(wù)的副本數(shù)。
左邊就是網(wǎng)關(guān),一個數(shù)據(jù)服務(wù)或者是一個服務(wù)接口所具備的能力,比如說一些安全認(rèn)證及權(quán)限訪問的問題,包括數(shù)據(jù)服務(wù)本身運行的穩(wěn)定性的監(jiān)控,還有數(shù)據(jù)接口調(diào)用分析,包括當(dāng)接口并發(fā)量突然有激增的情況發(fā)生時,需要有限流的能力。
最底層是數(shù)據(jù)源,為了后續(xù)對數(shù)據(jù)服務(wù)做一個更深層次分析,我們需要對日志進(jìn)行統(tǒng)一采集,統(tǒng)一管理。
最右邊是整個數(shù)據(jù)中臺里面很重要的一塊——元數(shù)據(jù)中心,因為現(xiàn)在看無論是任何一個模塊,任何一個數(shù)據(jù)的分層,對元數(shù)據(jù)的依賴都是相當(dāng)重的。
4. 元數(shù)據(jù)服務(wù)組成

元數(shù)據(jù)的概念比較難理解,其實元數(shù)據(jù)就是數(shù)據(jù)的數(shù)據(jù)。對于元數(shù)據(jù)服務(wù),現(xiàn)在提供了兩種服務(wù)形式。一種是搜索服務(wù),就是大家可以通過已知的一些信息去進(jìn)行搜索,拿到數(shù)據(jù)資產(chǎn)的一些更詳細(xì)的說明。比如可以通過搜表名、搜維度,搜業(yè)務(wù)線的名稱、搜指標(biāo),就可以拿到跟搜索詞相關(guān)的數(shù)據(jù)資產(chǎn),并且進(jìn)一步查看它的詳細(xì)信息。另外一種形式可能比較偏向?qū)缘幕蛘呓Y(jié)構(gòu)化的一種展現(xiàn)形式,也就是業(yè)務(wù)圖譜。我們可以從業(yè)務(wù)的角度出發(fā),一層一層地圈定更細(xì)的范圍來查找我們想要看到的數(shù)據(jù)資產(chǎn)。
元數(shù)據(jù)中心給用戶展現(xiàn)的信息主要是包括幾種,一種是基礎(chǔ)信息,也就是說數(shù)據(jù)的定義,包括任務(wù)的定義、數(shù)據(jù)的生產(chǎn)者、安全責(zé)任人、數(shù)據(jù)的樣例以及變更的歷史。另一種是數(shù)據(jù)資產(chǎn)本身的特點,首先是數(shù)據(jù)資產(chǎn)等級,我們需要對不同的資產(chǎn)做分級,以保證不同等級的資產(chǎn)有不同的保障機制,然后更多的精力放到重要資產(chǎn)上。其次是對數(shù)據(jù)的健康度和質(zhì)量的體現(xiàn),我們會對于所有的數(shù)據(jù)資產(chǎn)分級地檢測質(zhì)量,包括它的產(chǎn)出時間來對數(shù)據(jù)資產(chǎn)進(jìn)行定級。最后是數(shù)據(jù)流行度,主要是為了體現(xiàn)數(shù)據(jù)在下游使用當(dāng)中的使用次數(shù),以此來表明數(shù)據(jù)的重要程度。我們也會把數(shù)據(jù)的流行度作為數(shù)據(jù)價值的一個重要衡量指標(biāo)。
除了這些元信息之外,我們可能也需要對于整個數(shù)據(jù)生態(tài)的一數(shù)據(jù)標(biāo)準(zhǔn),通過元數(shù)據(jù)中心去對外去體現(xiàn)。比如業(yè)務(wù)的信息,包括業(yè)務(wù)的所屬部門、負(fù)責(zé)人的信息,以及業(yè)務(wù)相關(guān)的一些指標(biāo)維度和數(shù)據(jù)模型,把元信息以這兩種服務(wù)形式對外提供,其實是為了可以讓使用方可以更快速更高效地去找數(shù)據(jù),把數(shù)據(jù)能理解和使用起來,并且可以指導(dǎo)用戶去快速地開發(fā)自己的數(shù)據(jù)需求。
5. 元數(shù)據(jù)服務(wù)架構(gòu)

關(guān)于元數(shù)據(jù)的服務(wù)架構(gòu),左側(cè)是相當(dāng)于元數(shù)據(jù)的采集員,血緣采集其實是把數(shù)據(jù)資產(chǎn)由血緣形式體現(xiàn)出來,讓每一個數(shù)據(jù)知道其的上下游是誰,然后在一些變更的時候能及時通知,并且如果數(shù)據(jù)上有一些變化,也可以及時的通過數(shù)據(jù)血緣的能力去找到自己的上游來排查數(shù)據(jù)變化的原因。血緣采集主要是分以下幾部分:
一是通過HiveHook采集,Hive表之間的血緣,然后sparkhook采集spark的生產(chǎn)數(shù)據(jù),就是發(fā)個任務(wù)生產(chǎn)的數(shù)據(jù),以及它的數(shù)據(jù)源之間的關(guān)系。接下來是數(shù)據(jù)集成,是對數(shù)據(jù)異構(gòu)數(shù)據(jù)源的同步能力,我們把這種導(dǎo)入導(dǎo)出的一種血緣管控起來。最后是pingback,因為pingback是很多數(shù)據(jù)產(chǎn)生的一個源頭,所以這一塊是說我們從數(shù)據(jù)產(chǎn)生最源頭到最終數(shù)據(jù)的使用,全鏈路渲染的采集的方式。
下邊是對于非關(guān)系型數(shù)據(jù)的元數(shù)據(jù)采集,比如說Hive、Kafka、MySQL,pingback,還有數(shù)據(jù)報表。這些更多的是對于數(shù)據(jù)資產(chǎn)的原始信息的采集方式。然后通過消息隊列和API的這兩種形式實現(xiàn)離線或者是實時的元數(shù)據(jù)采集流程。元數(shù)據(jù)中心可以通過JanusGraph去對血緣進(jìn)行一個整體的管理。我們現(xiàn)在的血緣其實支持pingback到Hive,Hive到Hive,Hive到MySQL,然后MySQL到報表的整體的血緣關(guān)系。這樣我們所有的數(shù)據(jù)資產(chǎn),正常的來說應(yīng)該都在這整個的血緣網(wǎng)當(dāng)中,而且通過JanusGraph我們可以通過這種圖結(jié)構(gòu)的數(shù)據(jù)庫去快速查找一些數(shù)據(jù)資產(chǎn),包括它的上下游關(guān)系以及相互依賴關(guān)系。
然后技術(shù)元數(shù)據(jù)和業(yè)務(wù)元數(shù)據(jù),主要是包括一些字段信息、存儲信息、分區(qū)信息、資產(chǎn)信息、數(shù)據(jù)模型、數(shù)據(jù)流行度等等。為了快速查找,把索引信息存到了ES里,用于實現(xiàn)快速的搜索能力,并且這種詳細(xì)信息我們可以通過JanusGraph或者其他的這種數(shù)據(jù)庫存儲形式去獲取。
最后,元數(shù)據(jù)中心對外的體驗形式主要有兩種,一種叫查詢API,它可以對接到各種的業(yè)務(wù)系統(tǒng)上。另一種叫搜索API,搜索API就是現(xiàn)在平臺的展現(xiàn)形式,后面展現(xiàn)數(shù)據(jù)庫的搜索APIDE 能力。
6. 推理服務(wù)介紹

接下來對推理服務(wù)作一個簡單的介紹,前面花了很大篇幅講了數(shù)據(jù)服務(wù)和元數(shù)據(jù)服務(wù),而推理服務(wù)其實是基于我們現(xiàn)在智能化建設(shè)的角度提出的。我們在離線部分有一個叫機器學(xué)習(xí)平臺,它可以通過和我們現(xiàn)有的數(shù)據(jù)開發(fā)平臺打通去做一些離線的特征管理、樣板管理、特征訓(xùn)練,然后通過和數(shù)據(jù)服務(wù)打通,能支持模型的自動復(fù)制。推理服務(wù)還可以可以對外提供AGTP或者RPC的接口服務(wù),對各種前臺應(yīng)用提供實時在線的一個預(yù)測服務(wù)能力,并且它可以支持預(yù)加載或者熱更新,以及支持ABTest。
7. 推理服務(wù)架構(gòu)

推理服務(wù)的架構(gòu),它主要分為幾個模塊。其中,模型的管理平臺,通過離線訓(xùn)練,把一些模型數(shù)據(jù)通過PMML的形式來管理起來,然后輸出到在線預(yù)測管理平臺上。再通過預(yù)測管理平臺去部署推理服務(wù),同時運維監(jiān)控平臺對于線上的推理服務(wù)做一些性能或者心跳方面的監(jiān)測。
1. 數(shù)據(jù)服務(wù)案例

數(shù)據(jù)服務(wù)平臺其實是數(shù)據(jù)平臺和業(yè)務(wù)前臺以及數(shù)據(jù)源之間的關(guān)系,可以說是管理各種數(shù)據(jù)源發(fā)布同步數(shù)據(jù)的接口,然后提供給Client。Client其實很多時候是業(yè)務(wù)前臺來提供同步的調(diào)用法。右側(cè)的異步的交流能力是通過發(fā)布一個異步的數(shù)據(jù)接口來把數(shù)據(jù)源做一些DAG的管理和處理,把最終的數(shù)據(jù)發(fā)布到消息隊列上,同時去回調(diào)業(yè)務(wù)前臺的回調(diào)接口,再通知業(yè)務(wù)前臺去消息隊列獲取結(jié)果數(shù)據(jù)。
2. 數(shù)據(jù)服務(wù)平臺

上圖所示是數(shù)據(jù)服務(wù)的應(yīng)用場景,左圖是數(shù)據(jù)服務(wù)的API集市。上面有數(shù)據(jù)服務(wù)的簡單介紹、創(chuàng)建人、創(chuàng)建部門以及上線時間。右側(cè)是接口的詳細(xì)信息,比如上線時間、有效期、緊急程度、接口的地址說明、接口描述和一些列的解釋,這個列的解釋就是最終的輸出的結(jié)果。
3. 元數(shù)據(jù)服務(wù)案例

云數(shù)據(jù)服務(wù)就是數(shù)據(jù)源和數(shù)據(jù)使用方進(jìn)行打通。上游的數(shù)據(jù)生產(chǎn)、數(shù)據(jù)采集和數(shù)倉建設(shè)來對元數(shù)據(jù)進(jìn)行生產(chǎn),然后通過元數(shù)據(jù)服務(wù),把元數(shù)據(jù)的輸出到比如數(shù)據(jù)圖譜報表系、自助查詢系統(tǒng)以及后續(xù)的數(shù)據(jù)治理體系當(dāng)中。
4. 數(shù)據(jù)圖譜

這是數(shù)據(jù)圖譜的界面,其實是元數(shù)據(jù)一個體現(xiàn)形式。通過搜索可以快速地查找到一些表,然后再進(jìn)一步去看右下方表的詳細(xì)信息,包括所屬于的項目、集群、庫名、owner、創(chuàng)建人,以及相關(guān)的字段信息等。除此之外還會有一些血緣數(shù)據(jù)、血緣關(guān)系,包括所關(guān)聯(lián)的模型、變更歷史以及使用記錄。
未來展望

最后是對數(shù)據(jù)服務(wù)未來的展望。在數(shù)據(jù)服務(wù)上我們其實還有很多事情要去完成,主要為以下四個方面:
① 第一塊是需要做一些跨數(shù)據(jù)源的合并,目前雖然我們做到了一些小數(shù)據(jù)量的跨數(shù)據(jù)源合并,但是大數(shù)據(jù)量的跨數(shù)據(jù)源合并能還需要再深挖升級。
② 第二塊是服務(wù)接口組合,也是說我們?nèi)绻辛艘恍┰咏涌?,怎么去把它組合成更復(fù)雜更靈活的服務(wù)接口也是未來要解決的。
③ 第三塊就是服務(wù)模型化,就是如何通過數(shù)據(jù)模型去構(gòu)建服務(wù),讓使用方不去關(guān)注表的底層表的概念,或者底層表的信息,就能創(chuàng)建出符合自己預(yù)期的模型。
④ 最后一塊是自動化管理,目前主要是人為地定義接口,后續(xù)需要把接口定義的各個環(huán)節(jié)盡可弱化,通過生成一個接口,然后內(nèi)部的request模板或者response的字段說明,可以通過接口自動解析,然后以更靈活的方式體現(xiàn)出來,不需要每一個接口都事先定義才能使用。
今天的分享就到這里,謝謝大家。
馬金韜
愛奇藝 | 數(shù)據(jù)中臺負(fù)責(zé)人

推薦閱讀
歡迎長按掃碼關(guān)注「數(shù)據(jù)管道」
