本文轉載至:https://mp.weixin.qq.com/s/5kgxl_r14UiwHoRXaY_VJg數據庫
數據治理項目目標:經過建設一個專業數據治理平臺,實現指標維度及數據的統一管理,也探索一套高效的數據治理流程。緩存
在建設起源數據治理平臺的過程當中,主要面臨的挑戰以下:安全
爲了達成數據治理的目標,起源數據治理平臺就必須記錄下業務發展過程,並映射到數據加工和數據提取,規範約束這些過程。所以起源數據治理平臺概括到數據治理層,該層就位於數據倉庫層(或數據集市層)之上,數據應用層之下起到橋樑的做用,並且提供一系列規則,改變原來無序交互方式,將數據倉庫層和數據應用層的交互變爲有序的、可查詢、可監控。新的體系架構如圖以下所示:架構
在新的體系架構下:併發
平臺架構分佈式
起源數據治理平臺核心是保證數據一致,在數據安全的前提下,儘量提高數據分發能力。所以平臺內部有着極其複雜的關係,須要在建設過程當中進行抽象,造成具備相對單一功能的模塊;合理地組織模塊的層級和鏈接關係,下降平臺的開發難度,並提高平臺的可維護性。平臺架構以下圖所示,展現了平臺的內部模塊組織方式:微服務
如上圖所示起源數據治理平臺在功能模塊上由數據存儲、數據查詢、數據緩存、元數據管理、業務管理、安全管理、應用管理、對外API接口構成,各模塊的功能介紹以下。高併發
一、數據存儲大數據
起源數據治理平臺管理的數據存儲範圍包括:數據倉庫中的Topic層和數據應用層,存儲方式包括:Hive、MySQL、Kylin、Palo、ES、Druid。以下圖所示:ui
上圖所示的這些數據存儲中的數據的加工過程,由數據開發工程師負責,具體採用哪一種存儲介質,由數據開發工程師綜合所需數據存儲空間、查詢效率、模型的組織形式等因素決定。但後續的使用維護都由起源數據治理平臺管理,管理方式是經過管理這些數據表的元數據信息和查詢實現。
數據存儲託管以後,數據表元數據信息變動監控、表數據生產(存儲空間、生產狀態及完成時間)監控、表數據波動(同環比等)監控以及表的使用(模型的構建及查詢效率等)監控及評估,都由起源數據治理平臺自動完成,全部信息的變更都會自動周知對應的負責人,保證數據應用的安全和穩定。
二、元數據管理
元數據信息宏觀上包括兩大部分:業務元數據信息和數據元數據信息。其中業務元數據信息包括:指標業務定義、維度的業務定義等;數據元數據信息包括:數據表元數據信息、模型元數據信息、維表與維度的綁定關係、數據模型字段與指標的綁定關係。
起源平臺爲了實現元數據信息的管理,設計了四個模塊實現,分別是:數據表管理模塊、模型管理模塊、指標管理模塊、維度管理模塊。元數據管理是起源數據治理平臺的核心,起源平臺就是經過控制好元數據,來驅動數據的生產和消費。
數據表管理模塊
上述這些信息爲業務用戶提供指導,爲模型管理提供數據支持,爲數據表和數據的穩定提供監控和預警。
模型管理模塊
維度管理模塊
指標管理模塊
三、業務管理
業務管理按照功能劃分爲業務線管理、主題管理和工單管理三部分,在系統的實際建設中是拆分爲業務主題管理、數據主題管理和工單管理三大模塊實現的。相關模塊的建設主要保證業務人員和數據人員業務主題建設,相關模塊的權限控制,業務流程審覈,對應資源的隔離以及業務資源加工申請和加工過程的記錄追蹤。具體實現和功能以下:
業務主題管理:實現業務線管理和業務主題管理,實現不一樣業務線的管理以及業務線下的業務主題管理。業務線的拆分還隱藏着其餘模塊的權限管控和資源隔離的功能,不一樣業務線的用戶只能看到有權業務線的指標和維度;並且業務線的用戶劃分爲普通用戶和管理員,分別查看或編輯維度和指標的業務信息。並且業務線和業務主題中分別維護的商分負責人對指標進行二級審覈,由於新建立的指標僅僅是普通指標,若是想要全網都能查看,則須要發起認證,由這些人員審覈。
數據主題管理:數據主題管理實現數據業務線和數據主題管理,實現不一樣數據線的管理以及數據線下的數據主題管理。數據線的拆分也隱藏着對數據表、模型、指標、維度的資源隔離和權限管控的功能,不一樣數據線的用戶只能查看有權數據線的資源;並且數據線的用戶分爲普通用戶和管理員,對有權資源進行查看或編輯。數據線的接口人在工單模塊中具備審覈工單的權限功能。數據主題的負責人擁有審覈模型和指標技術信息的權限功能。
工單模塊管理:工單模塊管理實現了指標維度和對應模型加工線上申請、審覈、加工、審批的流程。整個模塊也是圍繞着這四個流程實現的,具體是業務人員發起指標和維度集合的加工申請,而後由數據線接口人審覈工單的合理性並分配對應的數據開發工程師,數據開發工程師加工模型並與對應的維度指標綁定,而後在工單中提交由數據接口人審覈是否合理,最終由工單發起人驗收。這個流程是一個標準的工單流程,每一個節點的業務流程可能會反覆,可是每次操做都進行記錄,方便業務人員後期追蹤。
四、安全管理
安全管理是起源數據治理平臺核心功能之一,分爲平臺操做權限管理和接口調用權限管理兩大部分。其中平臺操做權限管理是經過與公司將軍令權限管理系統打通,並配合平臺其餘模塊中權限控制代碼,實現了權限管理、審批、審計三大功能模塊;接口權限管理是經過平臺內的數據應用管理和外部應用管理模塊的映射關係,並在接口調用時鑑權實現。
權限管理模塊:權限管理模塊是將平臺的資源分劃分爲頁面權限、業務線&數據線用戶權限、數據應用權限來實現的。頁面權限實現平臺內頁面訪問控制。業務線&數據線用戶權限是將用戶分類爲普通用戶和管理員,普通用戶只能查看業務線和數據線內資源,管理員能夠操做業務線和數據線內的資源;而且經過業務線和數據線的獨立管理實現資源隔離,業務線實現了所屬維度和指標的隔離;數據線實現了所屬數據表和模型的隔離,而且經過創建業務線和數據線的關聯關係,也保證了指標和維度的技術信息操做隔離。數據應用中每一個應用都是獨立管理的,每一個應用權限都拆分普通用戶和管理員,普通用戶能夠訪問查詢應用,管理員能夠操做應用。
審批模塊:審批模塊包含審批工做流、個人申請、個人審批構成。審批工做流是根據不一樣的應用場景實現不一樣層級的審批,例如:在指標管理中服務於我的的普通指標變動爲服務於整個業務線的認證指標,就須要發起兩級審批,由業務主題負責人和業務商分審覈經過才能夠;模型管理中新增或修改模型上線,都須要數據主題負責人審批;數據應用的變動,都須要下游全部依賴外部應用負責人審批才生效。個人申請和個人審批是平臺頁面方便用戶查看流程進度和操做審覈。審批模塊目標是保證發佈信息的正確性、系統服務的穩定性。
審計模塊:審計模塊包括用戶操做記錄和記錄查看追蹤。用戶操做記錄是平臺各模塊調用接口記錄用戶每次操做先後的數據變動;記錄查看追蹤是檢索查詢頁面,查看對應的變動。審計模塊保證了用戶操做追蹤追責,也保證誤操做的信息恢復。
五、應用管理
應用管理由數據應用、外部應用、數據地圖三大模塊組成,它們構成了對外服務的主體,記錄了外部應用與平臺內管理的指標、維度、模型和表的關聯關係,也提供數據查詢展現、應用層ETL生產的能力。並且數據開發人員從底層向上觀察,能夠追蹤數據最終的全部流向;業務分析人員從頂層向下觀察,能夠看到構成服務的全部數據來源。
外部應用模塊:外部應用模塊管理外部應用和應用內的模塊,以及這些模塊訂閱的對應數據應用,目標是實現API接口調用的權限管理和數據最終流向的記錄。具體的實現上模塊首先建立對應的外部應用,記錄外部應用的名稱、URL、APPKEY等信息,而後由對應應用的負責人建立模塊,記錄模塊名稱、URL、moduleKey等信息。這些信息完善後,由對應的數據應用賦權給對應的模塊,創建起數據應用與外部應用的聯繫。最後在外部應用調用平臺對外API接口時,進行權限管理。
數據地圖:數據地圖功能是追查數據的流向,能夠從數據表、模型、指標、數據應用、外部應用任意節點查看上游數據來源和下游數據去向。起源數據治理平臺核心功能也是組織這些節點間的關係,造成完整的服務,數據地圖就是經過上面介紹模塊記錄的關係,追蹤數據流向,方便數據開發人員和業務分析人員瞭解數據消費和數據來源。
六、對外API
對外API接口是一套完整的對外信息提供接口,提供的功能分爲元數據信息類的接口、數據類接口、監控統計類接口,分別知足外部平臺和分析人員的對應需求。外部系統經過起源數據治理平臺獲取到的元數據和數據是通過認證並由平臺自動校驗後的,能夠保證信息的一致性、正確性。
元數據信息接口:元數據信息接口提供的包括指標、維度業務元數據信息和數據表、模型、指標計算、維度維表相關的數據元數據信息,實現與上游系統信息共享,達到信息一致性的目標。
數據類接口:數據類接口提供指標維度數據查詢服務,不僅僅知足常見的單條SQL查詢,並且能夠實現屢次查詢聚合運算(例如:同環比等)以及跨引擎查詢,並經過併發處理,能夠有效提高查詢效率,知足更多的業務場景。接口具備監控功能,可以評估每次查詢效率,提供查詢指導或預警的能力。
監控統計類接口:監控統計類接口提供指標數據監控信息、指標維度使用統計、數據接口的調用效率統計等服務,幫助下游服務平臺瞭解服務質量。
內部工做原理
起源數據治理平臺內部工做原理就是實現指標、維度業務信息與數據模型計算關係的映射管理,並根據外部應用所需的指標、維度以及查詢條件選擇最優的模型動態的實現查詢SQL或查詢Query的拼接,而後經過分佈式查詢引擎實現數據的高效查詢,具體過程以下圖所示:
上圖所示的分佈式查詢引擎,整合了大數據分析常見的各類存儲,經過封裝的接口提供服務。並且分佈式是經過Akka Cluster自主實現,經過Cluster Singleton解決單點故障的問題,經過Redis實現了任務隊列的持久化,經過平衡子節點任務量實現任務的合理調度,經過查詢狀態監控自動實現查詢降級和任務隊列的拆解,而且也完善了整個調度的監控,能夠實時查看任務和節點的運行狀況。
管理流程
起源數據治理平臺生產所需參與的角色包括:業務人員和數據開發人員(RD)。爲了保證信息的正確性,平臺內有着嚴格的管理流程,須要不一樣的角色在對應的節點進行維護管理,平臺的管理流程以下圖所示:
所上圖所示,指標的業務信息須要業務人員首先進行維護,而後數據RD同窗進行相應的數據表的建設,維護對應的數據表和模型的元數據信息,並完成指標與模型的綁定,最後由數據RD同窗構建數據應用爲用戶、業務系統及數據產品等提供服務。
建設成果
通過長時間的探索開發,完成了起源數據治理平臺的建設,成功解決了上面提到的問題,而且已經完成了酒旅內部10+個數據平臺(包括定製化產品和通用報表服務平臺)的數據治理支持。起源數據治理平臺還帶來了一些額外的收穫,總結概括起來實現了3個目標,提供了4種能力,以下:
若是換位到指標的角色,以辯證的角度分析,起源數據治理平臺解決了一個終極哲學問題:我是誰,我從哪裏來,我到哪裏去。
將來展望
起源數據治理平臺是天工體系(從數據管理、查詢到展現的一個完整生態)的一部分,整個天工體系還包括如通用報表系統、筋斗雲數據查詢系統。經過對天工體系的建設,直接目標是爲業務提供一整套高效、高質量的數據服務平臺;可是在天工體系的建設中,進行微服務治理,抽象形出一套統一標準,吸納更多的業務參與建設,爲業務提供開發降級,避免服務的重複建設,提高服務建設速度。以下圖所示:
如上圖所示,天工體系開放三套交互標準,實現模塊的可插拔和自由擴展,分別是: