1. 程式人生 > >看看美團如何進行數據治理平臺的建設與實踐?

看看美團如何進行數據治理平臺的建設與實踐?

uid 定義 擴展 調度 但是 因此 之一 校驗 想要

背景

作為一家高度數字化和技術驅動的公司,美團非常重視數據價值的挖掘。在公司日常運行中,通過各種數據分析挖掘手段,為公司發展決策和業務開展提供數據支持。經過多年的發展,美團酒旅內部形成了一套完整的解決方案,核心由數據倉庫+各種數據平臺的方式實現。其中數據倉庫整合各業務線的數據,消滅數據孤島;各種數據平臺擁有不同的特色和定位,例如:自助報表平臺、專業數據分析平臺、CRM數據平臺、各業務方向績效考核平臺等,滿足各類數據分析挖掘需求。早期數據倉庫與各種數據平臺的體系架構如圖1所示:

技術分享圖片

圖1 酒旅早期各數據平臺和數據倉庫體系架構圖

圖1所示的體系架構,在業務需求的滿足上非常高效,但在長時間的使用過程中,也產生了如下一些問題:

· 各數據平臺或平臺內不同模塊的指標定義不一致。

· 各數據平臺或平臺內不同模塊指標計算口徑不一致。

· 各數據平臺或平臺內不同模塊指標數據來源不一致。

上述這些問題總結歸納起來,就是指標數據不一致的問題,最終帶來的後果是指標數據可信度底,嚴重影響分析決策。通過後續追蹤分析,上述問題的由來,主要是不同業務線的數據分析人員、數據開發人員,以及不同的產品之間,缺乏有效的溝通,也沒有一個統一的入口,來記錄業務的發生和加工過程。在加上人員的流動,長時間積累之後就產生了這些問題。針對這些問題,酒旅內部啟動了數據治理項目,通過建設一個專業數據治理平臺,實現指標維度及數據的統一管理,也探索一套高效的數據治理流程。

挑戰

在建設起源數據治理平臺的過程中,主要面臨的挑戰如下:

· 起源數據治理平臺應該在架構中的哪個位置切入,減少對原有系統的侵入,並實現數據治理目標。

· 探索一套簡潔高效的管理流程,實現指標維度信息統一管理,保證信息的唯一性、正確性。

· 整合各種存儲引擎,實現一套高並發、高可用的數據唯一出口。

· 做好各業務線間的信息隔離和管理,確保數據安全。

解決思路

為了達成數據治理的目標,起源數據治理平臺就必須記錄下業務發展過程,並映射到數據加工和數據提取,規範約束這些過程。因此起源數據治理平臺歸納到數據治理層,該層就位於數據倉庫層(或數據集市層)之上,數據應用層之下起到橋梁的作用,而且提供一系列規則,改變原來無序交互方式,將數據倉庫層和數據應用層的交互變為有序的、可查詢、可監控。新的體系架構如圖2所示:

技術分享圖片

圖2 數據治理後的新體系架構圖

如上圖所示,在新的體系架構下:對於數據倉庫層,起源數據治理平臺綜合業務組織形式、指標數據來源、上層產品的使用及查詢的效率,指導數據倉庫模型的建設;對於應用層的產品,業務元數據信息及數據信息都是由起源數據治理平臺提供,保證了各數據產品獲取到的信息一致,而且還簡化了應用層產品數據獲取成本,也降低了對原有系統的侵入。

平臺架構

起源數據治理平臺核心是保證數據一致,在數據安全的前提下,盡可能提升數據分發能力。因此平臺內部有著極其復雜的關系,需要在建設過程中進行抽象,形成具有相對單一功能的模塊;合理地組織模塊的層級和連接關系,降低平臺的開發難度,並提升平臺的可維護性。平臺架構如圖3所示,展示了平臺的內部模塊組織方式。

技術分享圖片

圖3 起源數據治理平臺架構圖

如上圖所示起源數據治理平臺在功能模塊上由數據存儲、數據查詢、數據緩存、元數據管理、業務管理、安全管理、應用管理、對外API接口構成,各模塊的功能介紹如下。

數據存儲

起源數據治理平臺管理的數據存儲範圍包括:數據倉庫中的Topic層和數據應用層,存儲方式包括:Hive、MySQL、Kylin、Palo、ES、Druid。如下圖4所示:

技術分享圖片

圖4 起源數據治理平臺管理的數據存儲

上圖所示的這些數據存儲中的數據的加工過程,由數據開發工程師負責,具體采用哪種存儲介質,由數據開發工程師綜合所需數據存儲空間、查詢效率、模型的組織形式等因素決定。但後續的使用維護都由起源數據治理平臺管理,管理方式是通過管理這些數據表的元數據信息和查詢實現,具體實現細節會在下面章節中詳解。

數據存儲托管之後,數據表元數據信息變更監控、表數據生產(存儲空間、生產狀態及完成時間)監控、表數據波動(同環比等)監控以及表的使用(模型的構建及查詢效率等)監控及評估,都由起源數據治理平臺自動完成,所有信息的變動都會自動周知對應的負責人,保證數據應用的安全和穩定。

元數據管理

元數據信息宏觀上包括兩大部分:業務元數據信息和數據元數據信息。其中業務元數據信息包括:指標業務定義、維度的業務定義等;數據元數據信息包括:數據表元數據信息、模型元數據信息、維表與維度的綁定關系、數據模型字段與指標的綁定關系。

起源平臺為了實現元數據信息的管理,設計了四個模塊實現,分別是:數據表管理模塊、模型管理模塊、指標管理模塊、維度管理模塊。元數據管理是起源數據治理平臺的核心,起源平臺就是通過控制好元數據,來驅動數據的生產和消費。

數據表管理模塊

數據表管理模塊管理了數據庫信息和數據表信息。其中數據庫信息包括數據庫鏈接信息,數據庫信息維護後,起源數據治理平臺自動獲取對應庫中表的元數據信息。數據表信息包括:表的元數據信息(引擎、字段等)、表類型(維表或事實表)、表的使用情況(是否被模型使用)、表對應的ETL、表的負責人、表的推薦度、描述信息、表的監控配置及報警歷史、以及樣例數據等。上述這些信息為業務用戶提供指導,為模型管理提供數據支持,為數據表和數據的穩定提供監控和預警。

模型管理模塊

模型管理模塊能夠還原業務落地後數據表的組織關系,包括:數據表的關聯方式(join、left join、semi join等)、數據表的關聯限制、模型ER圖、模型包含字段、模型字段與維度的綁定關系、模型與指標的綁定關系。不過在實際使用過程中,面向業務和面向分析的模型有所不同,起源數據治理平臺是面向分析的,所以主要的模型包括維度建模中的星型模型或雪花模型,再就是OLAP多維分析的MOLAP或ROLAP。模型管理如下圖5、圖6所示:

技術分享圖片

圖5 起源數據治理平臺數據表模型

技術分享圖片

圖6 起源數據治理平臺SQL模型

維度管理模塊

維度管理模塊包括基礎信息和技術信息,對應著不同人員維護。其中基礎信息對應維度的業務信息,由業務管理人員維護,包括維度名稱、業務定義、業務分類。技術信息對應維度的數據信息,由數據開發工程師維護,包括是否有維表(是枚舉維度還是有獨立的維表)、是否是日期維、對應code英文名稱和中文名稱、對應name英文名稱和中文名稱。如果維度有維表,則需要和對應的維度表綁定,設置code和name對應的字段;如果維度是枚舉維,則需要填寫對應的code和name。維度的統一管理,有利於以後數據表的標準化,也方便用戶的查看。

指標管理模塊

指標管理模塊核心包括基礎信息和技術信息管理,衍生信息包括關聯指標、關聯應用管理。基礎信息對應的就是指標的業務信息,由業務人員填寫,主要包括指標名稱、業務分類、統計頻率、精度、單位、指標類型、指標定義、計算邏輯、分析方法、影響因素、分析維度等信息;基礎信息中還有一個比較重要的部分是監控配置,主要是配置指標的有效波動範圍區間、同環比波動區間等,監控指標數據的正常運行。

技術信息構成比較復雜,包括數據類型、指標代碼,但是核心部分是指標與模型的綁定關系,通過使用演進形成了當前系統兩類綁定關系:綁定物理模型和構建虛擬模型。綁定物理模型是指標與模型管理中的物理模型字段綁定,並配置對應的計算公式,或還包含一些額外的高級配置,如二次計算、模型過濾條件等;創建虛擬模型是通過已有指標和其對應的物理模型,具體步驟首先配置已有指標的計算方式或指標維度的過濾,然後選擇指標已綁定的物理模型,形成一個虛擬模型,虛擬模型的分析維度就是所選指標基礎模型的公共維度。

衍生信息中的關聯指標、關聯應用管理,是為了方便觀察指標被那些其他指標和數據應用使用,這是因為指標技術信息采用了嚴格權限控制,一旦被使用為了保證線上的運行安全是禁止變更的,只有解綁並審核通過後才可以編輯,所以這些衍生信息就是方便管理人員使用。指標技術信息如圖7所示:

技術分享圖片

圖7 起源數據治理平臺指標技術信息

業務管理

業務管理按照功能劃分為業務線管理、主題管理和工單管理三部分,在系統的實際建設中是拆分為業務主題管理、數據主題管理和工單管理三大模塊實現的。相關模塊的建設主要保證業務人員和數據人員業務主題建設,相關模塊的權限控制,業務流程審核,對應資源的隔離以及業務資源加工申請和加工過程的記錄追蹤。具體實現和功能如下:

業務主題管理

實現業務業務線管理和業務主題管理,實現不同業務線的管理以及業務線下的業務主題管理。業務線的拆分還隱藏著其他模塊的權限管控和資源隔離的功能,不同業務線的用戶只能看到有權業務線的指標和維度;而且業務線的用戶劃分為普通用戶和管理員,分別查看或編輯維度和指標的業務信息。而且業務線和業務主題中分別維護的商分負責人對指標進行二級審核,因為新創建的指標僅僅是普通指標,如果想要全網都能查看,則需要發起認證,由這些人員審核。

數據主題管理

數據主題管理實現數據業務線和數據主題管理,實現不同數據線的管理以及數據線下的數據主題管理。數據線的拆分也隱藏著對數據表、模型、指標、維度的資源隔離和權限管控的功能,不同數據線的用戶只能查看有權數據線的資源;而且數據線的用戶分為普通用戶和管理員,對有權資源進行查看或編輯。數據線的接口人在工單模塊中具有審核工單的權限功能。數據主題的負責人擁有審核模型和指標技術信息的權限功能。

工單模塊管理

工單模塊管理實現了指標維度和對應模型加工線上申請、審核、加工、審批的流程。整個模塊也是圍繞著這四個流程實現的,具體是業務人員發起指標和維度集合的加工申請,然後由數據線接口人審核工單的合理性並分配對應的數據開發工程師,數據開發工程師加工模型並與對應的維度指標綁定,然後在工單中提交由數據接口人審核是否合理,最終由工單發起人驗收。

這個流程是一個標準的工單流程,每個節點的業務流程可能會反復,但是每次操作都進行記錄,方便業務人員後期追蹤。工單管理如下圖8所示:

技術分享圖片

圖8 起源數據治理平臺工單管理

安全管理

安全管理是起源數據治理平臺核心功能之一,分為平臺操作權限管理和接口調用權限管理兩大部分。其中平臺操作權限管理是通過與公司將軍令權限管理系統打通,並配合平臺其他模塊中權限控制代碼,實現了權限管理、審批、審計三大功能模塊;接口權限管理是通過平臺內的數據應用管理和外部應用管理模塊的映射關系,並在接口調用時鑒權實現,這部分會在下面的應用管理章節中介紹。

權限管理模塊

權限管理模塊是將平臺的資源分劃分為頁面權限、業務線&數據線用戶權限、數據應用權限來實現的。頁面權限實現平臺內頁面訪問控制。業務線&數據線用戶權限是將用戶分類為普通用戶和管理員,普通用戶只能查看業務線和數據線內資源,管理員可以操作業務線和數據線內的資源;並且通過業務線和數據線的獨立管理實現資源隔離,業務線實現了所屬維度和指標的隔離;數據線實現了所屬數據表和模型的隔離,並且通過建立業務線和數據線的關聯關系,也保證了指標和維度的技術信息操作隔離。數據應用中每個應用都是獨立管理的,每個應用權限都拆分普通用戶和管理員,普通用戶可以訪問查詢應用,管理員可以操作應用。

審批模塊

審批模塊包含審批工作流、我的申請、我的審批構成。審批工作流是根據不同的應用場景實現不同層級的審批,例如:在指標管理中服務於個人的普通指標變更為服務於整個業務線的認證指標,就需要發起兩級審批,由業務主題負責人和業務商分審核通過才可以;模型管理中新增或修改模型上線,都需要數據主題負責人審批;數據應用的變更,都需要下遊所有依賴外部應用負責人審批才生效。我的申請和我的審批是平臺頁面方便用戶查看流程進度和操作審核。審批模塊目標是保證發布信息的正確性、系統服務的穩定性。

審計模塊

審計模塊包括用戶操作記錄和記錄查看追蹤。用戶操作記錄是平臺各模塊調用接口記錄用戶每次操作前後的數據變更;記錄查看追蹤是檢索查詢頁面,查看對應的變更。審計模塊保證了用戶操作追蹤追責,也保證誤操作的信息恢復。

應用管理

應用管理由數據應用、外部應用、數據地圖三大模塊組成,它們構成了對外服務的主體,記錄了外部應用與平臺內管理的指標、維度、模型和表的關聯關系,也提供數據查詢展示、應用層ETL生產的能力。而且數據開發人員從底層向上觀察,可以追蹤數據最終的所有流向;業務分析人員從頂層向下觀察,可以看到構成服務的所有數據來源。

數據應用模塊

數據應用模塊是記錄生成每個服務所需的指標、維度和數據模型的關系。每次服務中可以包含多個指標,這些指標可以來源於多個數據模型,不過不同的數據模型中需要包含公共維度,因為是通過這些公共維度將不同模型關聯起來。

數據應用中構建的服務可以發布成查詢服務、應用層ETL生產服務、對外API數據接口服務、通用報表配置服務,來滿足業務的不同需求。數據應用管理如下圖9所示:

技術分享圖片

圖9 起源數據治理平臺數據應用

外部應用模塊

外部應用模塊管理外部應用和應用內的模塊,以及這些模塊訂閱的對應數據應用,目標是實現API接口調用的權限管理和數據最終流向的記錄。具體的實現上模塊首先創建對應的外部應用,記錄外部應用的名稱、URL、APPKEY等信息,然後由對應應用的負責人創建模塊,記錄模塊名稱、URL、moduleKey等信息。這些信息完善後,由對應的數據應用賦權給對應的模塊,建立起數據應用與外部應用的聯系。最後在外部應用調用平臺對外API接口時,進行權限管理。

數據地圖

數據地圖功能是追查數據的流向,可以從數據表、模型、指標、數據應用、外部應用任意節點查看上遊數據來源和下遊數據去向。起源數據治理平臺核心功能也是組織這些節點間的關系,形成完整的服務,數據地圖就是通過上面介紹模塊記錄的關系,追蹤數據流向,方便數據開發人員和業務分析人員了解數據消費和數據來源。數據地圖如下圖10所示:

技術分享圖片

圖10 起源數據治理平臺數據地圖

對外API

對外API接口是一套完整的對外信息提供接口,提供的功能分為元數據信息類的接口、數據類接口、監控統計類接口,分別滿足外部平臺和分析人員的對應需求。外部系統通過起源數據治理平臺獲取到的元數據和數據是經過認證並由平臺自動校驗後的,可以保證信息的一致性、正確性。

元數據信息接口

元數據信息接口提供的包括指標、維度業務元數據信息和數據表、模型、指標計算、維度維表相關的數據元數據信息,實現與上遊系統信息共享,達到信息一致性的目標。

數據類接口

數據類接口提供指標維度數據查詢服務,不單單滿足常見的單條SQL查詢,而且可以實現多次查詢聚合運算(例如:同環比等)以及跨引擎查詢,並通過並發處理,可以有效提升查詢效率,滿足更多的業務場景。接口具有監控功能,能夠評估每次查詢效率,提供查詢指導或預警的能力。

監控統計類接口

監控統計類接口提供指標數據監控信息、指標維度使用統計、數據接口的調用效率統計等服務,幫助下遊服務平臺了解服務質量。

內部工作原理

起源數據治理平臺內部工作原理就是實現指標、維度業務信息與數據模型計算關系的映射管理,並根據外部應用所需的指標、維度以及查詢條件選擇最優的模型動態的實現查詢SQL或查詢Query的拼接,然後通過分布式查詢引擎實現數據的高效查詢,具體過程如下圖11所示:

技術分享圖片

圖11 起源數據治理平臺內部工作原理

上圖所示的分布式查詢引擎,整合了大數據分析常見的各種存儲,通過封裝的接口提供服務。而且分布式是通過Akka Cluster自主實現,通過Cluster Singleton解決單點故障的問題,通過Redis實現了任務隊列的持久化,通過平衡子節點任務量實現任務的合理調度,通過查詢狀態監控自動實現查詢降級和任務隊列的拆解,並且也完善了整個調度的監控,可以實時查看任務和節點的運行情況。

管理流程

起源數據治理平臺生產所需參與的角色包括:業務人員和數據開發人員(RD)。為了保證信息的正確性,平臺內有著嚴格的管理流程,需要不同的角色在對應的節點進行維護管理,平臺的管理流程如下圖12所示:

技術分享圖片

圖12 起源數據治理平臺管理流程

所上圖所示,指標的業務信息需要業務人員首先進行維護,然後數據RD同學進行相應的數據表的建設,維護對應的數據表和模型的元數據信息,並完成指標與模型的綁定,最後由數據RD同學構建數據應用為用戶、業務系統及數據產品等提供服務。

建設成果

經過長時間的探索開發,完成了起源數據治理平臺的建設,成功的解決了上面提到的問題,並且已經完成了酒旅內部10+個數據平臺(包括定制化產品和通用報表服務平臺)的數據治理支持。起源數據治理平臺還帶來了一些額外的收獲,總結歸納起來實現了3個目標,提供了4種能力,如下:

· 統一指標管理的目標。保證指標定義、計算口徑、數據來源的一致性。

· 統一維度管理的目標。保證維度定義、維度值的一致性。

· 統一數據出口的目標。實現了維度和指標元數據信息的唯一出口,維值和指標數據的唯一出口。

· 提供維度和指標數據統一監控及預警能力。

· 提供靈活可配的數據查詢分析能力。

· 提標數據地圖展示表、模型、指標、應用上下遊關系及分布的能力。

· 提供血緣分析追查數據來源的能力。

如果換位到指標的角色,以辯證的角度分析,起源數據治理平臺解決了一個終極哲學問題:我是誰,我從哪裏來,我到哪裏去。

未來展望

起源數據治理平臺是天工體系(從數據管理、查詢到展示的一個完整生態)的一部分,整個天工體系還包括如意通用報表系統、筋鬥雲數據查詢系統。通過對天工體系的建設,直接目標是為業務提供一整套高效、高質量的數據服務平臺;但是在天工體系的建設中,進行微服務治理,抽象形出一套統一標準,吸納更多的業務參與建設,為業務提供開發降級,避免服務的重復建設,提升服務建設速度。如下圖13所示:

技術分享圖片

圖13 天工體系架構圖

如上圖所示,天工體系開放三套交互標準,實現模塊的可插拔和自由擴展,分別是:

· 元數據交互標準,實現元數據管理的可插拔。

· 數據查詢標準,實現數據查詢引擎的可插拔。

· 可視化組件數據交互標準,實現可視化組件的可插拔。

看看美團如何進行數據治理平臺的建設與實踐?