背景
作為一家高度數字化和技術驅動的公司,美團非常重視資料價值的挖掘。在公司日常執行中,通過各種資料分析挖掘手段,為公司發展決策和業務開展提供資料支援。經過多年的發展,美團酒旅內部形成了一套完整的解決方案,核心由資料倉儲+各種資料平臺的方式實現。其中資料倉儲整合各業務線的資料,消滅資料孤島;各種資料平臺擁有不同的特色和定位,例如:自助報表平臺、專業資料分析平臺、CRM資料平臺、各業務方向績效考核平臺等,滿足各類資料分析挖掘需求。早期資料倉儲與各種資料平臺的體系架構如圖1所示:
圖1所示的體系架構,在業務需求的滿足上非常高效,但在長時間的使用過程中,也產生了如下一些問題:
· 各資料平臺或平臺內不同模組的指標定義不一致。
· 各資料平臺或平臺內不同模組指標計算口徑不一致。
· 各資料平臺或平臺內不同模組指標資料來源不一致。
上述這些問題總結歸納起來,就是指標資料不一致的問題,最終帶來的後果是指標資料可信度底,嚴重影響分析決策。通過後續追蹤分析,上述問題的由來,主要是不同業務線的資料分析人員、資料開發人員,以及不同的產品之間,缺乏有效的溝通,也沒有一個統一的入口,來記錄業務的發生和加工過程。在加上人員的流動,長時間積累之後就產生了這些問題。針對這些問題,酒旅內部啟動了資料治理專案,通過建設一個專業資料治理平臺,實現指標維度及資料的統一管理,也探索一套高效的資料治理流程。
挑戰
在建設起源資料治理平臺的過程中,主要面臨的挑戰如下:
· 起源資料治理平臺應該在架構中的哪個位置切入,減少對原有系統的侵入,並實現資料治理目標。
· 探索一套簡潔高效的管理流程,實現指標維度資訊統一管理,保證資訊的唯一性、正確性。
· 整合各種儲存引擎,實現一套高併發、高可用的資料唯一出口。
· 做好各業務線間的資訊隔離和管理,確保資料安全。
解決思路
為了達成資料治理的目標,起源資料治理平臺就必須記錄下業務發展過程,並對映到資料加工和資料提取,規範約束這些過程。因此起源資料治理平臺歸納到資料治理層,該層就位於資料倉儲層(或資料集市層)之上,資料應用層之下起到橋樑的作用,而且提供一系列規則,改變原來無序互動方式,將資料倉儲層和資料應用層的互動變為有序的、可查詢、可監控。新的體系架構如圖2所示:
如上圖所示,在新的體系架構下:對於資料倉儲層,起源資料治理平臺綜合業務組織形式、指標資料來源、上層產品的使用及查詢的效率,指導資料倉儲模型的建設;對於應用層的產品,業務後設資料資訊及資料資訊都是由起源資料治理平臺提供,保證了各資料產品獲取到的資訊一致,而且還簡化了應用層產品資料獲取成本,也降低了對原有系統的侵入。
平臺架構
起源資料治理平臺核心是保證資料一致,在資料安全的前提下,儘可能提升資料分發能力。因此平臺內部有著極其複雜的關係,需要在建設過程中進行抽象,形成具有相對單一功能的模組;合理地組織模組的層級和連線關係,降低平臺的開發難度,並提升平臺的可維護性。平臺架構如圖3所示,展示了平臺的內部模組組織方式。
如上圖所示起源資料治理平臺在功能模組上由資料儲存、資料查詢、資料快取、元資料管理、業務管理、安全管理、應用管理、對外API介面構成,各模組的功能介紹如下。
資料儲存
起源資料治理平臺管理的資料儲存範圍包括:資料倉儲中的Topic層和資料應用層,儲存方式包括:Hive、MySQL、Kylin、Palo、ES、Druid。如下圖4所示:
上圖所示的這些資料儲存中的資料的加工過程,由資料開發工程師負責,具體採用哪種儲存介質,由資料開發工程師綜合所需資料儲存空間、查詢效率、模型的組織形式等因素決定。但後續的使用維護都由起源資料治理平臺管理,管理方式是通過管理這些資料表的後設資料資訊和查詢實現,具體實現細節會在下面章節中詳解。
資料儲存託管之後,資料表後設資料資訊變更監控、表資料生產(儲存空間、生產狀態及完成時間)監控、表資料波動(同環比等)監控以及表的使用(模型的構建及查詢效率等)監控及評估,都由起源資料治理平臺自動完成,所有資訊的變動都會自動周知對應的負責人,保證資料應用的安全和穩定。
元資料管理
後設資料資訊巨集觀上包括兩大部分:業務後設資料資訊和資料後設資料資訊。其中業務後設資料資訊包括:指標業務定義、維度的業務定義等;資料後設資料資訊包括:資料表後設資料資訊、模型後設資料資訊、維表與維度的繫結關係、資料模型欄位與指標的繫結關係。
起源平臺為了實現後設資料資訊的管理,設計了四個模組實現,分別是:資料表管理模組、模型管理模組、指標管理模組、維度管理模組。元資料管理是起源資料治理平臺的核心,起源平臺就是通過控制好後設資料,來驅動資料的生產和消費。
資料表管理模組
資料表管理模組管理了資料庫資訊和資料表資訊。其中資料庫資訊包括資料庫連結資訊,資料庫資訊維護後,起源資料治理平臺自動獲取對應庫中表的後設資料資訊。資料表資訊包括:表的後設資料資訊(引擎、欄位等)、表型別(維表或事實表)、表的使用情況(是否被模型使用)、表對應的ETL、表的負責人、表的推薦度、描述資訊、表的監控配置及報警歷史、以及樣例資料等。上述這些資訊為業務使用者提供指導,為模型管理提供資料支援,為資料表和資料的穩定提供監控和預警。
模型管理模組
模型管理模組能夠還原業務落地後資料表的組織關係,包括:資料表的關聯方式(join、left join、semi join等)、資料表的關聯限制、模型ER圖、模型包含欄位、模型欄位與維度的繫結關係、模型與指標的繫結關係。不過在實際使用過程中,面向業務和麵向分析的模型有所不同,起源資料治理平臺是面向分析的,所以主要的模型包括維度建模中的星型模型或雪花模型,再就是OLAP多維分析的MOLAP或ROLAP。模型管理如下圖5、圖6所示:
維度管理模組
維度管理模組包括基礎資訊和技術資訊,對應著不同人員維護。其中基礎資訊對應維度的業務資訊,由業務管理人員維護,包括維度名稱、業務定義、業務分類。技術資訊對應維度的資料資訊,由資料開發工程師維護,包括是否有維表(是列舉維度還是有獨立的維表)、是否是日期維、對應code英文名稱和中文名稱、對應name英文名稱和中文名稱。如果維度有維表,則需要和對應的維度表繫結,設定code和name對應的欄位;如果維度是列舉維,則需要填寫對應的code和name。維度的統一管理,有利於以後資料表的標準化,也方便使用者的檢視。
指標管理模組
指標管理模組核心包括基礎資訊和技術資訊管理,衍生資訊包括關聯指標、關聯應用管理。基礎資訊對應的就是指標的業務資訊,由業務人員填寫,主要包括指標名稱、業務分類、統計頻率、精度、單位、指標型別、指標定義、計算邏輯、分析方法、影響因素、分析維度等資訊;基礎資訊中還有一個比較重要的部分是監控配置,主要是配置指標的有效波動範圍區間、同環比波動區間等,監控指標資料的正常執行。
技術資訊構成比較複雜,包括資料型別、指標程式碼,但是核心部分是指標與模型的繫結關係,通過使用演進形成了當前系統兩類繫結關係:繫結物理模型和構建虛擬模型。繫結物理模型是指標與模型管理中的物理模型欄位繫結,並配置對應的計算公式,或還包含一些額外的高階配置,如二次計算、模型過濾條件等;建立虛擬模型是通過已有指標和其對應的物理模型,具體步驟首先配置已有指標的計算方式或指標維度的過濾,然後選擇指標已繫結的物理模型,形成一個虛擬模型,虛擬模型的分析維度就是所選指標基礎模型的公共維度。
衍生資訊中的關聯指標、關聯應用管理,是為了方便觀察指標被那些其他指標和資料應用使用,這是因為指標技術資訊採用了嚴格許可權控制,一旦被使用為了保證線上的執行安全是禁止變更的,只有解綁並稽核通過後才可以編輯,所以這些衍生資訊就是方便管理人員使用。指標技術資訊如圖7所示:
業務管理
業務管理按照功能劃分為業務線管理、主題管理和工單管理三部分,在系統的實際建設中是拆分為業務主題管理、資料主題管理和工單管理三大模組實現的。相關模組的建設主要保證業務人員和資料人員業務主題建設,相關模組的許可權控制,業務流程稽核,對應資源的隔離以及業務資源加工申請和加工過程的記錄追蹤。具體實現和功能如下:
業務主題管理
實現業務業務線管理和業務主題管理,實現不同業務線的管理以及業務線下的業務主題管理。業務線的拆分還隱藏著其他模組的許可權管控和資源隔離的功能,不同業務線的使用者只能看到有權業務線的指標和維度;而且業務線的使用者劃分為普通使用者和管理員,分別檢視或編輯維度和指標的業務資訊。而且業務線和業務主題中分別維護的商分負責人對指標進行二級稽核,因為新建立的指標僅僅是普通指標,如果想要全網都能檢視,則需要發起認證,由這些人員稽核。
資料主題管理
資料主題管理實現資料業務線和資料主題管理,實現不同資料線的管理以及資料線下的資料主題管理。資料線的拆分也隱藏著對資料表、模型、指標、維度的資源隔離和許可權管控的功能,不同資料線的使用者只能檢視有權資料線的資源;而且資料線的使用者分為普通使用者和管理員,對有權資源進行檢視或編輯。資料線的介面人在工單模組中具有稽核工單的許可權功能。資料主題的負責人擁有稽核模型和指標技術資訊的許可權功能。
工單模組管理
工單模組管理實現了指標維度和對應模型加工線上申請、稽核、加工、審批的流程。整個模組也是圍繞著這四個流程實現的,具體是業務人員發起指標和維度集合的加工申請,然後由資料線介面人稽核工單的合理性並分配對應的資料開發工程師,資料開發工程師加工模型並與對應的維度指標繫結,然後在工單中提交由資料介面人稽核是否合理,最終由工單發起人驗收。
這個流程是一個標準的工單流程,每個節點的業務流程可能會反覆,但是每次操作都進行記錄,方便業務人員後期追蹤。工單管理如下圖8所示:
安全管理
安全管理是起源資料治理平臺核心功能之一,分為平臺操作許可權管理和介面呼叫許可權管理兩大部分。其中平臺操作許可權管理是通過與公司將軍令許可權管理系統打通,並配合平臺其他模組中許可權控制程式碼,實現了許可權管理、審批、審計三大功能模組;介面許可權管理是通過平臺內的資料應用管理和外部應用管理模組的對映關係,並在介面呼叫時鑑權實現,這部分會在下面的應用管理章節中介紹。
許可權管理模組
許可權管理模組是將平臺的資源分劃分為頁面許可權、業務線&資料線使用者許可權、資料應用許可權來實現的。頁面許可權實現平臺內頁面訪問控制。業務線&資料線使用者許可權是將使用者分類為普通使用者和管理員,普通使用者只能檢視業務線和資料線內資源,管理員可以操作業務線和資料線內的資源;並且通過業務線和資料線的獨立管理實現資源隔離,業務線實現了所屬維度和指標的隔離;資料線實現了所屬資料表和模型的隔離,並且通過建立業務線和資料線的關聯關係,也保證了指標和維度的技術資訊操作隔離。資料應用中每個應用都是獨立管理的,每個應用許可權都拆分普通使用者和管理員,普通使用者可以訪問查詢應用,管理員可以操作應用。
審批模組
審批模組包含審批工作流、我的申請、我的審批構成。審批工作流是根據不同的應用場景實現不同層級的審批,例如:在指標管理中服務於個人的普通指標變更為服務於整個業務線的認證指標,就需要發起兩級審批,由業務主題負責人和業務商分稽核通過才可以;模型管理中新增或修改模型上線,都需要資料主題負責人審批;資料應用的變更,都需要下游所有依賴外部應用負責人審批才生效。我的申請和我的審批是平臺頁面方便使用者檢視流程進度和操作稽核。審批模組目標是保證釋出資訊的正確性、系統服務的穩定性。
審計模組
審計模組包括使用者操作記錄和記錄檢視追蹤。使用者操作記錄是平臺各模組呼叫介面記錄使用者每次操作前後的資料變更;記錄檢視追蹤是檢索查詢頁面,檢視對應的變更。審計模組保證了使用者操作追蹤追責,也保證誤操作的資訊恢復。
應用管理
應用管理由資料應用、外部應用、資料地圖三大模組組成,它們構成了對外服務的主體,記錄了外部應用與平臺內管理的指標、維度、模型和表的關聯關係,也提供資料查詢展示、應用層ETL生產的能力。而且資料開發人員從底層向上觀察,可以追蹤資料最終的所有流向;業務分析人員從頂層向下觀察,可以看到構成服務的所有資料來源。
資料應用模組
資料應用模組是記錄生成每個服務所需的指標、維度和資料模型的關係。每次服務中可以包含多個指標,這些指標可以來源於多個資料模型,不過不同的資料模型中需要包含公共維度,因為是通過這些公共維度將不同模型關聯起來。
資料應用中構建的服務可以釋出成查詢服務、應用層ETL生產服務、對外API資料介面服務、通用報表配置服務,來滿足業務的不同需求。資料應用管理如下圖9所示:
外部應用模組
外部應用模組管理外部應用和應用內的模組,以及這些模組訂閱的對應資料應用,目標是實現API介面呼叫的許可權管理和資料最終流向的記錄。具體的實現上模組首先建立對應的外部應用,記錄外部應用的名稱、URL、APPKEY等資訊,然後由對應應用的負責人建立模組,記錄模組名稱、URL、moduleKey等資訊。這些資訊完善後,由對應的資料應用賦權給對應的模組,建立起資料應用與外部應用的聯絡。最後在外部應用呼叫平臺對外API介面時,進行許可權管理。
資料地圖
資料地圖功能是追查資料的流向,可以從資料表、模型、指標、資料應用、外部應用任意節點檢視上游資料來源和下游資料去向。起源資料治理平臺核心功能也是組織這些節點間的關係,形成完整的服務,資料地圖就是通過上面介紹模組記錄的關係,追蹤資料流向,方便資料開發人員和業務分析人員瞭解資料消費和資料來源。資料地圖如下圖10所示:
對外API
對外API介面是一套完整的對外資訊提供介面,提供的功能分為後設資料資訊類的介面、資料類介面、監控統計類介面,分別滿足外部平臺和分析人員的對應需求。外部系統通過起源資料治理平臺獲取到的後設資料和資料是經過認證並由平臺自動校驗後的,可以保證資訊的一致性、正確性。
後設資料資訊介面
後設資料資訊介面提供的包括指標、維度業務後設資料資訊和資料表、模型、指標計算、維度維表相關的資料後設資料資訊,實現與上游系統資訊共享,達到資訊一致性的目標。
資料類介面
資料類介面提供指標維度資料查詢服務,不單單滿足常見的單條SQL查詢,而且可以實現多次查詢聚合運算(例如:同環比等)以及跨引擎查詢,並通過併發處理,可以有效提升查詢效率,滿足更多的業務場景。介面具有監控功能,能夠評估每次查詢效率,提供查詢指導或預警的能力。
監控統計類介面
監控統計類介面提供指標資料監控資訊、指標維度使用統計、資料介面的呼叫效率統計等服務,幫助下游服務平臺瞭解服務質量。
內部工作原理
起源資料治理平臺內部工作原理就是實現指標、維度業務資訊與資料模型計算關係的對映管理,並根據外部應用所需的指標、維度以及查詢條件選擇最優的模型動態的實現查詢SQL或查詢Query的拼接,然後通過分散式查詢引擎實現資料的高效查詢,具體過程如下圖11所示:
上圖所示的分散式查詢引擎,整合了大資料分析常見的各種儲存,通過封裝的介面提供服務。而且分散式是通過Akka Cluster自主實現,通過Cluster Singleton解決單點故障的問題,通過Redis實現了任務佇列的持久化,通過平衡子節點任務量實現任務的合理排程,通過查詢狀態監控自動實現查詢降級和任務佇列的拆解,並且也完善了整個排程的監控,可以實時檢視任務和節點的執行情況。
管理流程
起源資料治理平臺生產所需參與的角色包括:業務人員和資料開發人員(RD)。為了保證資訊的正確性,平臺內有著嚴格的管理流程,需要不同的角色在對應的節點進行維護管理,平臺的管理流程如下圖12所示:
所上圖所示,指標的業務資訊需要業務人員首先進行維護,然後資料RD同學進行相應的資料表的建設,維護對應的資料表和模型的後設資料資訊,並完成指標與模型的繫結,最後由資料RD同學構建資料應用為使用者、業務系統及資料產品等提供服務。
建設成果
經過長時間的探索開發,完成了起源資料治理平臺的建設,成功的解決了上面提到的問題,並且已經完成了酒旅內部10+個資料平臺(包括定製化產品和通用報表服務平臺)的資料治理支援。起源資料治理平臺還帶來了一些額外的收穫,總結歸納起來實現了3個目標,提供了4種能力,如下:
· 統一指標管理的目標。保證指標定義、計算口徑、資料來源的一致性。
· 統一維度管理的目標。保證維度定義、維度值的一致性。
· 統一資料出口的目標。實現了維度和指標後設資料資訊的唯一出口,維值和指標資料的唯一出口。
· 提供維度和指標資料統一監控及預警能力。
· 提供靈活可配的資料查詢分析能力。
· 提標資料地圖展示表、模型、指標、應用上下游關係及分佈的能力。
· 提供血緣分析追查資料來源的能力。
如果換位到指標的角色,以辯證的角度分析,起源資料治理平臺解決了一個終極哲學問題:我是誰,我從哪裡來,我到哪裡去。
未來展望
起源資料治理平臺是天工體系(從資料管理、查詢到展示的一個完整生態)的一部分,整個天工體系還包括如意通用報表系統、筋斗雲資料查詢系統。通過對天工體系的建設,直接目標是為業務提供一整套高效、高質量的資料服務平臺;但是在天工體系的建設中,進行微服務治理,抽象形出一套統一標準,吸納更多的業務參與建設,為業務提供開發降級,避免服務的重複建設,提升服務建設速度。如下圖13所示:
圖13 天工體系架構圖
如上圖所示,天工體系開放三套互動標準,實現模組的可插拔和自由擴充套件,分別是:
· 後設資料互動標準,實現元資料管理的可插拔。
· 資料查詢標準,實現資料查詢引擎的可插拔。
· 視覺化元件資料互動標準,實現視覺化元件的可插拔。