做爲一家高度數字化和技術驅動的公司,美團很是重視數據價值的挖掘。在公司平常運行中,經過各類數據分析挖掘手段,爲公司發展決策和業務開展提供數據支持。通過多年的發展,美團酒旅內部造成了一套完整的解決方案,核心由數據倉庫+各類數據平臺的方式實現。其中數據倉庫整合各業務線的數據,消滅數據孤島;各類數據平臺擁有不一樣的特點和定位,例如:自助報表平臺、專業數據分析平臺、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。模型管理以下圖五、圖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接口是一套完整的對外信息提供接口,提供的功能分爲元數據信息類的接口、數據類接口、監控統計類接口,分別知足外部平臺和分析人員的對應需求。外部系統經過起源數據治理平臺獲取到的元數據和數據是通過認證並由平臺自動校驗後的,能夠保證信息的一致性、正確性。
元數據信息接口提供的包括指標、維度業務元數據信息和數據表、模型、指標計算、維度維表相關的數據元數據信息,實現與上游系統信息共享,達到信息一致性的目標。
數據類接口提供指標維度數據查詢服務,不僅僅知足常見的單條SQL查詢,並且能夠實現屢次查詢聚合運算(例如:同環比等)以及跨引擎查詢,並經過併發處理,能夠有效提高查詢效率,知足更多的業務場景。接口具備監控功能,可以評估每次查詢效率,提供查詢指導或預警的能力。
監控統計類接口提供指標數據監控信息、指標維度使用統計、數據接口的調用效率統計等服務,幫助下游服務平臺瞭解服務質量。
起源數據治理平臺內部工做原理就是實現指標、維度業務信息與數據模型計算關係的映射管理,並根據外部應用所需的指標、維度以及查詢條件選擇最優的模型動態的實現查詢SQL或查詢Query的拼接,而後經過分佈式查詢引擎實現數據的高效查詢,具體過程以下圖11所示:
圖11 起源數據治理平臺內部工做原理上圖所示的分佈式查詢引擎,整合了大數據分析常見的各類存儲,經過封裝的接口提供服務。並且分佈式是經過Akka Cluster自主實現,經過Cluster Singleton解決單點故障的問題,經過Redis實現了任務隊列的持久化,經過平衡子節點任務量實現任務的合理調度,經過查詢狀態監控自動實現查詢降級和任務隊列的拆解,而且也完善了整個調度的監控,能夠實時查看任務和節點的運行狀況。
起源數據治理平臺生產所需參與的角色包括:業務人員和數據開發人員(RD)。爲了保證信息的正確性,平臺內有着嚴格的管理流程,須要不一樣的角色在對應的節點進行維護管理,平臺的管理流程以下圖12所示:
圖12 起源數據治理平臺管理流程所上圖所示,指標的業務信息須要業務人員首先進行維護,而後數據RD同窗進行相應的數據表的建設,維護對應的數據表和模型的元數據信息,並完成指標與模型的綁定,最後由數據RD同窗構建數據應用爲用戶、業務系統及數據產品等提供服務。
通過長時間的探索開發,完成了起源數據治理平臺的建設,成功的解決了上面提到的問題,而且已經完成了酒旅內部10+個數據平臺(包括定製化產品和通用報表服務平臺)的數據治理支持。起源數據治理平臺還帶來了一些額外的收穫,總結概括起來實現了3個目標,提供了4種能力,以下:
若是換位到指標的角色,以辯證的角度分析,起源數據治理平臺解決了一個終極哲學問題:我是誰,我從哪裏來,我到哪裏去。
起源數據治理平臺是天工體系(從數據管理、查詢到展現的一個完整生態)的一部分,整個天工體系還包括如意通用報表系統、筋斗雲數據查詢系統。經過對天工體系的建設,直接目標是爲業務提供一整套高效、高質量的數據服務平臺;可是在天工體系的建設中,進行微服務治理,抽象形出一套統一標準,吸納更多的業務參與建設,爲業務提供開發降級,避免服務的重複建設,提高服務建設速度。以下圖13所示:
圖13 天工體系架構圖如上圖所示,天工體系開放三套交互標準,實現模塊的可插拔和自由擴展,分別是:
夷山,美團點評技術專家,現任TechClub-Java俱樂部主席,2006年畢業於武漢大學,前後就任於IBM、用友、風行以及阿里巴巴。2014年加入美團,長期致力於BI工具、數據安全與數據質量工做等方向。
李鵬,美團點評技術專家,曾就任於搜狐暢遊、網易,2018年加入美團點評,長期致力於數據治理、數據倉庫建設、數據平臺研發等工做方向。
最後插播一個招聘廣告,有對數據產品工具開發感興趣的能夠發郵件給 fuyishan#meituan.com。咱們是一羣擅長大數據領域數據工具,數據治理,智能數據應用架構設計及產品研發的工程師。