唯品金融大數據——數據字典
一、數據字典的概念
數據字典(Data dictionary)是可以供用戶訪問、記錄資料庫和應用程序元數據的記錄。一般可以分為主動數據字典和被動數據字典。主動數據字典,在對資料庫或應用程序結構進行修改時,其內容可以自動更新。被動數據字典,修改時必須手工更新其內容。
二、數據字典的用戶
數據字典是對數據的描述,描述數據模型中的數據對象、或項目描述的集合。數據字典有利於開發人員、分析師、演算法工程師等其他需要參考的用戶,以較快的速度了解數據。
當開發人員用到數據模型的程序時,數據字典可以幫助理解數據項適合結構中的哪個地方、可能包含什麼數值、以及數據項表示現實中的什麼意思。例如,看到學歷代碼時,我們看到的是01、02、03……,需要知道具體的意思時,可以從字典中得知,01表示小學,02表示初中,03表示高中……
三、唯品金融數據字典的演進
1.手工時代
手工時代的優點,是簡單迅速,不需要系統支持就。問題是,文件的維護,都靠開發人員主動,且工作量較大,文件分散在各系統開發人員手中,查詢效率低下,維護一旦不及時,字典的可用性就降低。很多時候要搞清楚真正的欄位含義,需要翻看代碼,給開發和分析工作的效率造成影響。這是很多早期字典的通病。
在大數據部門,需要整合這些數據,然後產出一份數據字典,往往需要很多的人工工作,按不同的業務主題手工整理,每次新加一張表、或更新表的時候,都需要進行相應維護,ETL工作人員有很多精力花在數據字典的整理上。
在中間層和應用層的建設上,又單獨維護一份數據字典。這種數據字典格式,相較於底層數據字典有所進步,主要在之前的基礎上,增加一些業務口徑、變更記錄、負責人等,方便大家進行溝通交流,並對業務口徑留底。這版數據字典,大大方便了用戶使用和查詢。
但從維護上來說,開發人員的工作量依然很大,基本沒有自動化,完全靠手工維護,質量高度依賴於維護人員的用心程度和對業務的理解。
2.在線時代
在線數據字典,更好地進行了體系化梳理,也對各業務系統的數據字典做了整合,將文件按格式整理好,一次性導入伺服器,方便用戶查詢。
目前,數據字典已實現大部分工作自動化,增加了人性化的功能,如:表的責任人等。大數據部門匯總各業務部門的數據,責任人不限於大數據團隊負責人,同時也增加了業務系統負責人,方便使用者與系統開發人員溝通交流。
對於貼源層的數據字典,直接通過後台ETL自動更新,減少ETL人員的工作量。
倉庫層和應用層的數據字典,通過維護欄位翻譯庫標準化建表過程,實現自動翻譯,開發人員只需維護對應的業務邏輯和映射關係(後續也在考慮解析腳本進行自動化填充)。這樣,從很大程度上減少了開發人員維護數據字典的工作量。
由於在線實時更新,使用者可以隨時看到最新的數據字典。為避免部分開發人員忘記維護,我們還設置了相應監控,及時提醒。
對於倉庫層的數據字典,我們梳理了重點業務表,進行詳細的業務口徑整理,並保持不斷監控更新。
有了單表信息之後,如果能從字典中看到表的數據來源和血緣關係,對於使用人員也會有很大的幫助。所以我們開發了血緣關係圖。
在這些功能的基礎上,我們與數據質量平台(DQC)打通,將數據質量的監控結果也顯示在字典信息中,如:預警次數、值域分布、均值穩定性等。
總之,數據字典的目標是更好地將公司的數據資產進行整合、融會貫通,也是對業務的全面梳理。數據字典的目標用戶將越來越廣,除了技術開發人員,還有分析師、演算法工程師、風控策略工程師,將來包括業務運營人員,也可以根據業務發展,查詢可以使用的數據資產、以幫助進行更好的拓展業務。從數據字典中看到的,不僅是數據欄位的解釋,更能夠從中解讀出業務含意。
讓數據字典成為每個用戶的日常查詢的工具,是我們的目標。唯品金融大數據團隊,期待您的優化改進建議,我們將繼續努力,為業務的發展貢獻力量。
TAG:唯品金融大數據 |