滴滴指標(biāo)標(biāo)準(zhǔn)化實(shí)踐
一、指標(biāo)管理背景
常見的指標(biāo)交付流程如下:
- DS 或運(yùn)營提出指標(biāo)需求
- 數(shù)據(jù) BP 或數(shù)據(jù)產(chǎn)品梳理確認(rèn)指標(biāo)口徑
- 數(shù)倉工程師進(jìn)行 ETL 開發(fā)
最終交付的指標(biāo)會(huì)被應(yīng)用到下游的各個(gè)數(shù)據(jù)產(chǎn)品中,比如管理駕駛艙、BI 報(bào)表以及分析工具。
1. 指標(biāo)的基本要求
數(shù)倉交付的指標(biāo)必須滿足準(zhǔn)確性、及時(shí)性以及一致性的要求。同時(shí),在指標(biāo)交付的過程中,需要兼顧指標(biāo)管理的效率。在滴滴數(shù)據(jù)體系 1.0 階段,整體的策略如下:
(1)準(zhǔn)確性
- 開發(fā)環(huán)節(jié):通過測試中心進(jìn)行指標(biāo)數(shù)據(jù)的測試驗(yàn)收;通過配置數(shù)據(jù)質(zhì)量規(guī)則監(jiān)控指標(biāo)新增分區(qū)的產(chǎn)出情況。
- 消費(fèi)環(huán)節(jié):通過配置指標(biāo)監(jiān)控監(jiān)測數(shù)據(jù)異動(dòng)。
(2)及時(shí)性
- 開發(fā)環(huán)節(jié):在指標(biāo)的生產(chǎn)任務(wù)上關(guān)聯(lián)對(duì)應(yīng)的SLA基線,通過基線的智能預(yù)警,配合平臺(tái)的穩(wěn)定性保障措施,保證指標(biāo)的及時(shí)產(chǎn)出。
- 消費(fèi)環(huán)節(jié):根據(jù)指標(biāo)等級(jí)進(jìn)行分級(jí)保障,不同等級(jí)的指標(biāo)掛靠不同級(jí)別的基線,通過基線倒推保障下游數(shù)據(jù)的及時(shí)產(chǎn)出。
(3)一致性
- 開發(fā)環(huán)節(jié)和消費(fèi)環(huán)節(jié):通過人工校驗(yàn)和反饋的方式確保指標(biāo)的一致性。
(4)管理效率
- 開發(fā)環(huán)節(jié):基于統(tǒng)一的一站式開發(fā)平臺(tái)進(jìn)行指標(biāo)的開發(fā)。
- 消費(fèi)環(huán)節(jié):在下游各個(gè)數(shù)據(jù)產(chǎn)品中定義指標(biāo)口徑和取數(shù)邏輯。
由此可見,在滴滴數(shù)據(jù)體系 1.0 階段,指標(biāo)的口徑散落在各個(gè)數(shù)據(jù)產(chǎn)品中,不但對(duì)一致性提出了挑戰(zhàn),也造成了各個(gè)數(shù)據(jù)產(chǎn)品的重復(fù)開發(fā)。
2. 解決方案發(fā)展
滴滴數(shù)據(jù)體系 2.0 階段,核心目標(biāo)之一是建立規(guī)范的、標(biāo)準(zhǔn)化的指標(biāo)體系。
(1)指標(biāo)字典
為了提升指標(biāo)管理的效率,最初采用的是傳統(tǒng)指標(biāo)字典的解決方案,即提供統(tǒng)一的指標(biāo)平臺(tái),用于指標(biāo)錄入、解釋指標(biāo)口徑。
該方案存在以下問題:不規(guī)范的命名會(huì)造成指標(biāo)口徑的二義性,譬如同義不同名、同名不同義等;指標(biāo)管理的權(quán)責(zé)沒有明確的定義,指標(biāo)錄入的流程沒有嚴(yán)格的管控,久而久之就會(huì)造成指標(biāo)口徑的混亂以及指標(biāo)體系的臃腫等問題,導(dǎo)致產(chǎn)品走向被棄用的結(jié)局。
(2)指標(biāo)管理工具
為了解決上述問題,基于數(shù)倉的維度建模方法論構(gòu)建指標(biāo)管理工具。通過系統(tǒng)自動(dòng)生成規(guī)范的中英文名稱,解決指標(biāo)的重復(fù)建設(shè)問題,從而消除指標(biāo)的二義性。同時(shí)明確了指標(biāo)管理的權(quán)責(zé),以及指標(biāo)錄入的流程管控。
具體做法如下:
- 根據(jù)滴滴的業(yè)務(wù)屬性,劃分網(wǎng)約車、兩輪車等獨(dú)立的業(yè)務(wù)板塊。
- 在業(yè)務(wù)板塊下劃分?jǐn)?shù)據(jù)域以及時(shí)間周期。時(shí)間周期主要是用于描述數(shù)據(jù)統(tǒng)計(jì)的時(shí)間范圍,數(shù)據(jù)域通常是業(yè)務(wù)過程或者維度進(jìn)行抽象的集合。
- 在數(shù)據(jù)域下劃分業(yè)務(wù)過程。業(yè)務(wù)過程通常是企業(yè)業(yè)務(wù)活動(dòng)的事件。
- 在業(yè)務(wù)過程下劃分原子指標(biāo)以及修飾詞。原子指標(biāo)通常是某個(gè)業(yè)務(wù)過程的度量,是業(yè)務(wù)定義中不可再分的指標(biāo)。修飾詞通常是除維度以外的限定條件。原子指標(biāo)和修飾詞以及時(shí)間周期構(gòu)成了派生指標(biāo)。
以網(wǎng)約車板塊下的“最近 1 天完單 GMV”為例,GMV 是原子指標(biāo),完單是修飾詞,最近 1 天是統(tǒng)計(jì)范圍。系統(tǒng)根據(jù)原子指標(biāo)、修飾詞以及時(shí)間周期的中英文名稱自動(dòng)生成派生指標(biāo)“最近 1 天完單 GMV”的中英文名稱。
其次,指標(biāo)管理的方法論由數(shù)據(jù)側(cè)強(qiáng)管控。其中,相對(duì)不變的數(shù)據(jù)域、以及通用的時(shí)間周期,由業(yè)務(wù)板塊管理員統(tǒng)一管控。和數(shù)據(jù)域強(qiáng)相關(guān)的業(yè)務(wù)過程、原子指標(biāo)以及修飾詞,由數(shù)據(jù)域管理員統(tǒng)一管控。由于派生指標(biāo)的中英文名稱是系統(tǒng)根據(jù)原子指標(biāo)、修飾詞以及時(shí)間周期自動(dòng)生成。所以,一旦原子指標(biāo)或者修飾詞的口徑發(fā)生變更,下游派生指標(biāo)就會(huì)自動(dòng)級(jí)聯(lián)變更。此外,根據(jù)不同等級(jí)對(duì)指標(biāo)的新增和變更流程進(jìn)行強(qiáng)管控,譬如 T1 核心指標(biāo)的變更,需要數(shù)據(jù)管理員、業(yè)務(wù)板塊管理員分別進(jìn)行審批。
二、滴滴數(shù)據(jù)產(chǎn)品概況
1. 數(shù)據(jù)產(chǎn)品多樣,各自消費(fèi)指標(biāo)
滴滴數(shù)據(jù)產(chǎn)品包括面向高管的駕駛艙、面向業(yè)務(wù)的 BI 看板、面向 DS 的分析工具等,這些數(shù)據(jù)產(chǎn)品消費(fèi)指標(biāo)的模式分為兩種:傳統(tǒng)數(shù)倉模式和敏捷 BI 模式。
傳統(tǒng)數(shù)倉模式下,數(shù)據(jù) DS 提出指標(biāo)需求,數(shù)據(jù)BP確認(rèn)指標(biāo)口徑,并將指標(biāo)錄入指標(biāo)管理工具。數(shù)倉工程師在數(shù)據(jù)開發(fā)平臺(tái)上進(jìn)行指標(biāo)加工,產(chǎn)出各個(gè)業(yè)務(wù)方向的 APP 表。下游的各個(gè)數(shù)據(jù)產(chǎn)品基于 APP 表構(gòu)建數(shù)據(jù)集,并在數(shù)據(jù)集上定義指標(biāo)的取數(shù)邏輯。
該模式存在以下問題:
- 指標(biāo)管理工具和指標(biāo)生產(chǎn)、消費(fèi)鏈路是脫離的,指標(biāo)管理工具等同于一個(gè)規(guī)范化的線上 wiki,指標(biāo)管理的業(yè)務(wù)價(jià)值難以評(píng)估。
- 下游各個(gè)數(shù)據(jù)產(chǎn)品各自維護(hù)指標(biāo)的計(jì)算口徑, 指標(biāo)口徑的一致性無法得到保障。
- 下游用戶只能基于數(shù)倉提供的APP表中包含的維度進(jìn)行數(shù)據(jù)分析,無法進(jìn)行靈活的下鉆分析。
2. 敏捷 BI 難以管控指標(biāo)口徑
傳統(tǒng)數(shù)倉模式下,所有數(shù)據(jù)需求都要經(jīng)過數(shù)倉的排期開發(fā),在業(yè)務(wù)需求快速變化的場景下,數(shù)倉的開發(fā)效率以及需求響應(yīng)速度就成為業(yè)務(wù)發(fā)展的瓶頸。由此誕生敏捷 BI 模式。
敏捷 BI 模式倡導(dǎo)“人人都是分析師”,即支持業(yè)務(wù)人員在 BI 工具中定義和加工指標(biāo),通過短平快的方式解決需求快速變化時(shí)的分析效率問題。在這種模式下,數(shù)倉提供的是大寬表,業(yè)務(wù)人員基于大寬表進(jìn)行指標(biāo)的加工以及靈活的分析。
該模式存在以下問題:
- 指標(biāo)的計(jì)算口徑由業(yè)務(wù)人員維護(hù),并且散落在各個(gè)數(shù)據(jù)產(chǎn)品以及數(shù)據(jù)集中,導(dǎo)致指標(biāo)口徑的一次性問題變得更加嚴(yán)峻。
- 指標(biāo)加工對(duì)于業(yè)務(wù)人員來說,存在一定的門檻。
3. 問題總結(jié)
綜上所述,整個(gè)指標(biāo)交付流程存在以下問題:
- 指標(biāo)生產(chǎn)成本高。數(shù)倉面向應(yīng)用層去構(gòu)建 APP 表,可復(fù)用性差,譬如需要在 APP 表中冗余存儲(chǔ)維度屬性,針對(duì)衍生維度或者計(jì)算指標(biāo)需要做二次計(jì)算。此外,開發(fā)和運(yùn)維成本高,譬如針對(duì)于不同時(shí)間粒度下的同一個(gè)指標(biāo),數(shù)倉需要開發(fā)多張 APP 表,指標(biāo)的生產(chǎn)成本高進(jìn)而影響數(shù)倉的交付效率。
- 指標(biāo)消費(fèi)效率低。在傳統(tǒng)數(shù)倉模式下,基于 APP 表的交付方式很難支撐業(yè)務(wù)進(jìn)行靈活的自助分析。在敏捷 BI 模式下,如果業(yè)務(wù)需要分析某個(gè)指標(biāo),首先需要在指標(biāo)管理工具中找到該指標(biāo),然后基于指標(biāo)對(duì)應(yīng)的物理表和計(jì)算口徑手寫 SQL 進(jìn)行取數(shù)驗(yàn)數(shù),不但流程長,而且使用門檻高。
- 指標(biāo)口徑存在一致性問題。由于指標(biāo)的取數(shù)邏輯沉淀在各個(gè)數(shù)據(jù)產(chǎn)品以及數(shù)據(jù)集中,所以會(huì)造成不同數(shù)據(jù)產(chǎn)品間指標(biāo)數(shù)據(jù)的不一致,乃至同一數(shù)據(jù)產(chǎn)品上不同BI看板間指標(biāo)數(shù)據(jù)的不一致。
- 規(guī)范執(zhí)行落地難。由于指標(biāo)管理游離在指標(biāo)生產(chǎn)和消費(fèi)鏈路之外,導(dǎo)致指標(biāo)管理的規(guī)范執(zhí)行程度難以評(píng)估。其次,指標(biāo)管理的成本較高,而下游消費(fèi)指標(biāo)場景比較單一,導(dǎo)致指標(biāo)管理的收益不足,進(jìn)而影響數(shù)據(jù)BP的錄入意愿,從而加重了指標(biāo)管理執(zhí)行的難度。
三、指標(biāo)標(biāo)準(zhǔn)化建設(shè)
1. 整體方案
指標(biāo)標(biāo)準(zhǔn)化建設(shè)的整體目標(biāo)是打通指標(biāo)管理、生產(chǎn)、消費(fèi)的全鏈路,解決指標(biāo)口徑的一致性問題,提升指標(biāo)生產(chǎn)消費(fèi)的效率。整體建設(shè)思路和業(yè)界的 headless BI 模式類似,核心是將指標(biāo)從數(shù)據(jù)生產(chǎn)、消費(fèi)鏈路中抽離出來,作為獨(dú)立的一層,不同的數(shù)據(jù)產(chǎn)品通過對(duì)接同一個(gè)指標(biāo)平臺(tái),實(shí)現(xiàn)屏蔽指標(biāo)技術(shù)口徑,確保指標(biāo)口徑一致性的目的。
指標(biāo)定義標(biāo)準(zhǔn)化建設(shè)的整體架構(gòu)分為三個(gè)部分:
- 指標(biāo)定義標(biāo)準(zhǔn)化:基于指標(biāo)管理工具,進(jìn)行指標(biāo)的標(biāo)準(zhǔn)化定義以及流程管控。
- 指標(biāo)實(shí)現(xiàn)邏輯化:通過邏輯模型隔離指標(biāo)生產(chǎn)和消費(fèi),提升物理模型可復(fù)用性,保障指標(biāo)交付質(zhì)量。
- 指標(biāo)消費(fèi)統(tǒng)一化:基于指標(biāo)維度的統(tǒng)一查詢 DSL,降低下游消費(fèi)門檻,通過接入統(tǒng)一查詢服務(wù),保障指標(biāo)口徑一致性,通過數(shù)據(jù)虛擬化技術(shù)增強(qiáng) OLAP 的分析能力,提升取數(shù)靈活性。
2. 解決方案:指標(biāo)定義標(biāo)準(zhǔn)化
為了提升指標(biāo)的語義化表達(dá)能力,在基礎(chǔ)派生指標(biāo)之上,引入了計(jì)算指標(biāo)以及復(fù)合指標(biāo)。計(jì)算指標(biāo)和復(fù)合指標(biāo)不需要落表開發(fā)。
- 基礎(chǔ)指標(biāo):對(duì)應(yīng)于物理表上的某個(gè)字段。
- 計(jì)算指標(biāo):基于其他指標(biāo)四則計(jì)算得到。
- 復(fù)合指標(biāo):基于其他指標(biāo)復(fù)合維度得到。
此外,支持四種維度類型:
- 維表維度:對(duì)應(yīng)于一張維表,維表包含唯一的主鍵以及其他的維度屬性,譬如城市維度。
- 枚舉維度:用來描述可枚舉的 k-v 鍵值對(duì),譬如業(yè)務(wù)線維度,key 是業(yè)務(wù)線 ID,value 是業(yè)務(wù)線名稱。
- 退化維度:某些場景下,一些維度在不同的物理表上有不同的計(jì)算邏輯,但代表的是同一個(gè)維度。退化維度主要用于解決這種場景。
- 衍生維度:和退化維度類似,區(qū)別在于衍生維度的計(jì)算邏輯比較通用,可以進(jìn)行集中化管理。
基于四種維度類型可以構(gòu)建邏輯維度,用于描述維度間的關(guān)聯(lián)關(guān)系,通過邏輯維度可以構(gòu)建數(shù)倉的雪花模型。
除了對(duì)指標(biāo)維度的定義規(guī)范進(jìn)行標(biāo)準(zhǔn)化之外,還需要對(duì)指標(biāo)維度的錄入流程進(jìn)行標(biāo)準(zhǔn)化。
- 將 DS 提指標(biāo)需求、數(shù)據(jù) BP 錄入指標(biāo)、數(shù)據(jù)開發(fā)交付指標(biāo)的流程進(jìn)行線上化。
- 對(duì)指標(biāo)的變更流程進(jìn)行強(qiáng)管控,當(dāng)指標(biāo)口徑發(fā)生變更時(shí),所有下游指標(biāo)會(huì)自動(dòng)級(jí)聯(lián)變更,并通知到所有的下游應(yīng)用。
為了規(guī)范指標(biāo)在下游的安全使用,構(gòu)建了完善的指標(biāo)權(quán)限體系,包括指標(biāo)權(quán)限以及行級(jí)權(quán)限。指標(biāo)權(quán)限對(duì)應(yīng)于指標(biāo)的列權(quán)限,擁有指標(biāo)權(quán)限才能使用指標(biāo)。行級(jí)權(quán)限主要控制指標(biāo)的數(shù)據(jù)可見范圍,比如某個(gè)大區(qū)運(yùn)營只能看到該大區(qū)下的指標(biāo)數(shù)據(jù)。
為了防止平臺(tái)上錄入無用指標(biāo)導(dǎo)致指標(biāo)泛濫,需要進(jìn)行常態(tài)化的指標(biāo)維度治理。
- 在看清方面,構(gòu)建了從基礎(chǔ)指標(biāo)、時(shí)間周期、修飾詞到基礎(chǔ)指標(biāo),基礎(chǔ)指標(biāo)和維度到計(jì)算指標(biāo)和復(fù)合指標(biāo)的全鏈路血源。
- 在治理措施方面,針對(duì)長期未使用的指標(biāo)維度,會(huì)自動(dòng)進(jìn)入廢棄狀態(tài),針對(duì)公共的指標(biāo)維度,支持跨業(yè)務(wù)板塊引用和管理。
綜上所述,基于指標(biāo)維度的標(biāo)準(zhǔn)化定義規(guī)范以及流程管控,確保指標(biāo)定義標(biāo)準(zhǔn)化。通過配合常態(tài)化的指標(biāo)維度治理,達(dá)到長期的指標(biāo)定義標(biāo)準(zhǔn)化。
3. 解決方案:指標(biāo)實(shí)現(xiàn)邏輯化——邏輯建模
指標(biāo)的技術(shù)口徑是由物理表字段、聚合方式和維度共同決定。在指標(biāo)實(shí)現(xiàn)邏輯化部分,通過抽象出邏輯模型,構(gòu)建指標(biāo)維度和物理表字段的映射關(guān)系,同時(shí)定義指標(biāo)的聚合方式,從而實(shí)現(xiàn)指標(biāo)的技術(shù)口徑定義。
邏輯模型改變了數(shù)倉交付數(shù)據(jù)、下游消費(fèi)數(shù)據(jù)的方式。數(shù)倉從原先的交付表變?yōu)榻桓吨笜?biāo),下游從消費(fèi)表變?yōu)橄M(fèi)指標(biāo),從而對(duì)用戶屏蔽指標(biāo)的技術(shù)口徑實(shí)現(xiàn)。
邏輯模型解耦了指標(biāo)生產(chǎn)和消費(fèi)。
- 邏輯模型可以適配不同的計(jì)算引擎,對(duì)用戶屏蔽了不同引擎的計(jì)算差異。
- 邏輯模型可以適配不同的表粒度,對(duì)用戶屏蔽 cube 表、groupingsets 表以及普通表在數(shù)據(jù)存儲(chǔ)上的差異。
- 邏輯模型可以適配不同的數(shù)倉架構(gòu),不僅支持 APP 表的接入,也支持直接接入 DWM 和 DWD 表。
- 邏輯模型可以實(shí)現(xiàn)配置即開發(fā)。譬如針對(duì)同一指標(biāo)不同時(shí)間粒度的情況,數(shù)倉只需要開發(fā)天粒度的指標(biāo),自然周、自然月指標(biāo)可以基于最近一天指標(biāo)上卷得到,譬如計(jì)算指標(biāo)和復(fù)合指標(biāo)可以通過實(shí)時(shí)計(jì)算得到,無需落表開發(fā),譬如通過邏輯維度可以自動(dòng)構(gòu)建數(shù)倉的星形模型和雪花模型。
4. 解決方案:指標(biāo)實(shí)現(xiàn)邏輯化——指標(biāo)質(zhì)量保障
為了支持同一個(gè)指標(biāo)在不同模型中同時(shí)存在,需要保證指標(biāo)在不同模型間的數(shù)據(jù)一致性。
- ETL 階段:當(dāng)指標(biāo)的生產(chǎn)任務(wù)變更時(shí),需要產(chǎn)出指標(biāo)的測試報(bào)告后方可準(zhǔn)入。同時(shí)在 DQC 上配置指標(biāo)的數(shù)據(jù)質(zhì)量規(guī)則,用來檢測新增分區(qū)的產(chǎn)出質(zhì)量。
- 邏輯模型階段:在模型發(fā)布前,需要針對(duì)模型上的指標(biāo)進(jìn)行驗(yàn)數(shù),并且需要和線上版本的數(shù)據(jù)進(jìn)行比對(duì),以確保模型的正確配置和變更。為了保證指標(biāo)的一致性,針對(duì)模型上的所有指標(biāo)進(jìn)行不同模型間的一致性校驗(yàn),只有數(shù)據(jù)一致才允許發(fā)布到線上。同時(shí),平臺(tái)會(huì)默認(rèn)監(jiān)聽模型分區(qū)的變更,并自動(dòng)進(jìn)行系統(tǒng)一致性校驗(yàn),一旦出現(xiàn)數(shù)據(jù)不一致的情況則會(huì)及時(shí)告知用戶。
平臺(tái)上的流程規(guī)范和監(jiān)控手段,只是為了幫助用戶快速并及時(shí)地發(fā)現(xiàn)問題,核心需要自上而下的目標(biāo)牽引,以及對(duì)指標(biāo)質(zhì)量的高度重視。
5. 解決方案:指標(biāo)實(shí)現(xiàn)邏輯化——指標(biāo)質(zhì)量保障
在指標(biāo)標(biāo)準(zhǔn)化建設(shè)前,下游各個(gè)數(shù)據(jù)產(chǎn)品各自維護(hù)指標(biāo)的取數(shù)邏輯,導(dǎo)致各個(gè)應(yīng)用間的指標(biāo)一致性無法得到保障。期望通過構(gòu)建統(tǒng)一的指標(biāo)消費(fèi)體系,解決指標(biāo)口徑的一致性問題。
指標(biāo)消費(fèi)統(tǒng)一化的整體架構(gòu)分為三層:
最上層是統(tǒng)一的查詢?nèi)肟?,提供統(tǒng)一的查詢服務(wù),通過 DSL 描述指標(biāo)維度的查詢請(qǐng)求,DSL 包含指標(biāo)、維度、過濾條件、時(shí)間范圍四個(gè)要素。基于指標(biāo)維度的查詢方式對(duì)下游屏蔽了計(jì)算口徑的實(shí)現(xiàn),由統(tǒng)一的查詢服務(wù)完成從指標(biāo)定義到計(jì)算口徑的轉(zhuǎn)化,主要實(shí)現(xiàn)流程如下:
(1)構(gòu)建指標(biāo) DAG
根據(jù)用戶的查詢請(qǐng)求構(gòu)建指標(biāo)查詢樹,每個(gè)節(jié)點(diǎn)代表一個(gè)指標(biāo),節(jié)點(diǎn)間的邊代表指標(biāo)間的依賴關(guān)系。
(2)模型篩選
針對(duì)每個(gè)指標(biāo),篩選出滿足查詢條件的模型列表。主要會(huì)進(jìn)行維度、權(quán)限、時(shí)間的篩選。維度篩選用來過濾維度不匹配的模型,權(quán)限篩選用來過濾不包含鑒權(quán)維度的模型,時(shí)間篩選用來過濾數(shù)據(jù)范圍不匹配的模型。
(3)模型擇優(yōu)
模型篩選后,指標(biāo)和模型間是多對(duì)多的關(guān)系。針對(duì)每個(gè)指標(biāo),需要進(jìn)一步確定最優(yōu)的查詢模型,即模型擇優(yōu),主要采取性能為主,調(diào)控為輔的思路。主要包括以下幾種策略:
- 周期排序:譬如自然月指標(biāo)同時(shí)存在天模型和月模型中,優(yōu)先選取月模型,通過減少計(jì)算數(shù)據(jù)量提高查詢速度。
- 引擎排序:譬如指標(biāo)同時(shí)存在 Hive 模型和 SR 模型中,優(yōu)先選取 SR 模型,充分利用 OLAP 引擎的計(jì)算能力。
- 粒度排序:譬如指標(biāo)同時(shí)存在 Cube 表模型和普通表模型中, 優(yōu)先選取 Cube 表模型,通過指標(biāo)的預(yù)計(jì)算提高查詢速度。
- 效率排序:譬如優(yōu)先選取能夠滿足更多指標(biāo)查詢請(qǐng)求的模型,針對(duì)同一個(gè)模型上的指標(biāo)進(jìn)行查詢請(qǐng)求的合并,通過減少查詢次數(shù)提高查詢速度。
最后支持在模型上配置推薦度,輔助人工進(jìn)行策略調(diào)控。
(4)模型查詢樹
模型擇優(yōu)后,確定了每個(gè)指標(biāo)的查詢模型。由于不同的指標(biāo)可能對(duì)應(yīng)同一個(gè)模型,需要對(duì)同一個(gè)模型的指標(biāo)查詢進(jìn)行合并,將指標(biāo)查詢樹轉(zhuǎn)變成模型查詢樹,模型查詢樹的每個(gè)節(jié)點(diǎn)代表一個(gè)模型以及可查的指標(biāo)列表,節(jié)點(diǎn)間的邊代表模型間的關(guān)聯(lián)關(guān)系。
(5)生成聯(lián)邦查詢
基于模型查詢樹生成聯(lián)邦查詢 SQL,發(fā)送至最下層的數(shù)據(jù)虛擬化層。
數(shù)據(jù)虛擬化層主要用于執(zhí)行聯(lián)邦查詢及擴(kuò)展自定義計(jì)算函數(shù)。其中,聯(lián)邦查詢 SQL 分為兩個(gè)部分:
- 引擎 SQL:描述同一模型上所有指標(biāo)的查詢 SQL,不同模型的引擎 SQL 會(huì)根據(jù)引擎類型發(fā)送到不同的數(shù)據(jù)引擎執(zhí)行數(shù)據(jù)查詢。
- MPP SQL:描述不同模型間指標(biāo)的計(jì)算關(guān)系,用于匯聚不同模型間的指標(biāo)并進(jìn)行二次計(jì)算,比如周、月、季、年的上卷,XTD,最近 N 天的上卷以及同環(huán)比均值等。
數(shù)據(jù)虛擬化層基于開源的 MPP 實(shí)現(xiàn)。通過擴(kuò)展查詢協(xié)議,支持聯(lián)邦查詢 SQL 的語義化描述;通過擴(kuò)展自定義 connector,實(shí)現(xiàn)基于聚合下推的聯(lián)邦查詢能力,提升跨源查詢的性能;通過擴(kuò)展自定義計(jì)算函數(shù),提升下游取數(shù)的靈活性。
6. 重塑消費(fèi)體系
通過指標(biāo)消費(fèi)統(tǒng)一化,實(shí)現(xiàn)指標(biāo)的一處定義,全局消費(fèi),重塑下游數(shù)據(jù)產(chǎn)品消費(fèi)指標(biāo)的方式。目前已經(jīng)覆蓋滴滴內(nèi)部絕大部分的數(shù)據(jù)產(chǎn)品,譬如駕駛艙,BI報(bào)表看板、復(fù)雜表格和探索分析,以及各種分析工具等,同時(shí)也支持各個(gè)業(yè)務(wù)的數(shù)據(jù)產(chǎn)品接入,未來也會(huì)接入實(shí)驗(yàn)分析領(lǐng)域的相關(guān)產(chǎn)品。
7. 收益總結(jié)
(1)標(biāo)準(zhǔn)化管理
通過指標(biāo)維度的標(biāo)準(zhǔn)化定義規(guī)范及流程管控,保證了指標(biāo)維度的標(biāo)準(zhǔn)化管理,為指標(biāo)的質(zhì)量保障奠定基礎(chǔ)。
(2)指標(biāo)質(zhì)量保障
通過邏輯模型隔離指標(biāo)生產(chǎn)和消費(fèi),基于平臺(tái)化的監(jiān)控手段以及自上而下的目標(biāo)牽引保障指標(biāo)口徑的一致性,為基于指標(biāo)維度消費(fèi)奠定基礎(chǔ)。
(3)指標(biāo)高效消費(fèi)
基于指標(biāo)維度的統(tǒng)一查詢服務(wù),對(duì)下游屏蔽了指標(biāo)的計(jì)算口徑。通過邏輯大寬表加數(shù)據(jù)虛擬化的方案,提升下游取數(shù)的靈活性,從而促進(jìn)指標(biāo)的高效消費(fèi),增強(qiáng)指標(biāo)維度治理的動(dòng)力。
(4)指標(biāo)治理
指標(biāo)維度的動(dòng)態(tài)治理,進(jìn)一步促進(jìn)指標(biāo)維度的長期標(biāo)準(zhǔn)化,實(shí)現(xiàn)指標(biāo)標(biāo)準(zhǔn)化價(jià)值的正循環(huán),推進(jìn)了指標(biāo)標(biāo)準(zhǔn)化建設(shè)從「可做可不做——不得不做——愿意做」的過程演變。
指標(biāo)標(biāo)準(zhǔn)化建設(shè)對(duì)于數(shù)據(jù)體系來說也是意義非凡。
(1)生產(chǎn)側(cè)
- 通過邏輯大寬表和數(shù)據(jù)虛擬化的方案,使得部分指標(biāo)維度無需落表開發(fā),降低數(shù)倉的開發(fā)成本,提升數(shù)倉的需求交付效率。
- 通過提供系統(tǒng)化的指標(biāo)質(zhì)量保障方案,保障指標(biāo)口徑的一致性,降低數(shù)倉的運(yùn)維成本。
- 通過構(gòu)建完善的指標(biāo)維度血緣,為數(shù)倉治理提供可靠的依據(jù),降低數(shù)倉的治理成本。
(2)消費(fèi)側(cè)
- 構(gòu)建靈活、低門檻、高效的指標(biāo)應(yīng)用?;谶壿嫶髮挶砗蛿?shù)據(jù)虛擬化的方案,構(gòu)建可復(fù)用的指標(biāo)池,支撐下游用戶進(jìn)行靈活的自助分析,提升指標(biāo)消費(fèi)的效率?;谥笜?biāo)維度的統(tǒng)一查詢服務(wù),對(duì)所有用戶屏蔽指標(biāo)的計(jì)算口徑實(shí)現(xiàn),降低指標(biāo)消費(fèi)的成本。
四、后續(xù)規(guī)劃
滴滴指標(biāo)標(biāo)準(zhǔn)化建設(shè)的發(fā)展歷程總結(jié)為三個(gè)階段:探索、拓展和深入。當(dāng)前處于拓展階段,未來將走向深入階段。主要包含以下三個(gè)方面:
(1)打造全生態(tài)體系的產(chǎn)品矩陣
- 打通實(shí)驗(yàn)分析領(lǐng)域,保證實(shí)驗(yàn)指標(biāo)和 BI 指標(biāo)口徑的一致性。
- 通過自助分析產(chǎn)品,提供更加靈活的取數(shù)方式,為 DS 及運(yùn)營提效, 提升指標(biāo)標(biāo)準(zhǔn)化建設(shè)的價(jià)值感知。
- 探索基于大模型的指標(biāo)取數(shù)方式,進(jìn)一步降低下游取數(shù)的門檻。
(2)持續(xù)為數(shù)據(jù)體系提效
- 從指標(biāo)錄入效率和模型構(gòu)建靈活性等方面,進(jìn)一步提升指標(biāo)管理和開發(fā)的效率。
- 基于統(tǒng)一的指標(biāo)監(jiān)控告警能力,進(jìn)一步保障指標(biāo)的交付質(zhì)量。
- 打通指標(biāo)生產(chǎn)鏈路,實(shí)現(xiàn)指標(biāo)生產(chǎn)自動(dòng)化,進(jìn)一步降低數(shù)倉的開發(fā)成本。
(3)實(shí)時(shí)指標(biāo)標(biāo)準(zhǔn)化
指標(biāo)標(biāo)準(zhǔn)化建設(shè)拓展至實(shí)時(shí)指標(biāo)體系。實(shí)時(shí)場景不同于離線場景,對(duì)于 QPS 和查詢性能有著更高的要求,需要進(jìn)行更加完善的穩(wěn)定性建設(shè)。
以上就是本次分享的內(nèi)容,謝謝大家。
五、Q&A
Q1:是否支持同一請(qǐng)求里查詢不同模型?不同引擎查詢速度不同,多個(gè)結(jié)果要出來一起再給出,中間是否有超時(shí)處理?
A1:支持在一次請(qǐng)求里查詢不同的模型,按照公共維度關(guān)聯(lián)。針對(duì)不同模型查詢速度存在差異的情況,推薦用 join 性能較好的 StarRocks,當(dāng)前方案不做中間存儲(chǔ),在 MPP 層并行處理。
針對(duì)查詢速度做過一系列的性能優(yōu)化,譬如在統(tǒng)一查詢層實(shí)現(xiàn)了查詢緩存,在數(shù)據(jù)虛擬化層實(shí)現(xiàn)了聚合下推、字段裁剪等,未來考慮實(shí)現(xiàn)查詢預(yù)熱、自動(dòng)物化等性能優(yōu)化手段,譬如針對(duì) Hive 模型進(jìn)行預(yù)計(jì)算和加速。
指標(biāo)管理的成本較高,指標(biāo)錄入和開發(fā)的效率提升是未來的核心方向之一,主要是通過提供指標(biāo)的批量錄入和變更,以及自動(dòng)化構(gòu)建模型等能力。
Q2:針對(duì)指標(biāo)調(diào)用,上游的數(shù)據(jù)產(chǎn)品準(zhǔn)入策略是什么?
A2:指標(biāo)主要服務(wù)于數(shù)據(jù)產(chǎn)品,沒有應(yīng)用到線上。數(shù)據(jù)產(chǎn)品包括BI報(bào)表、駕駛艙、各種分析工具等,離線指標(biāo)整體的 QPS 不高。在查詢性能方面,未來重點(diǎn)是指標(biāo)的自動(dòng)生產(chǎn)、自動(dòng)物化,提升整體查詢效率。