主數據方法論之歷史數據梳理算法
主數據的歷史數據梳理工做,工做內容簡單,工做目的明確,因此部分的工做涉及的理論知識不多,須要探討的問題也很少。可是偏偏是這部分工做佔據了主數據管理項目實施工做的大部分時間。如何藉助工具軟件,提升數據清洗工做效率則成爲了該階段工做的重點內容,也是保證主數據管理項目利潤率的關鍵點。數據庫
數據梳理工做的對象:工具
每一個主數據所對應的副本數據;大數據
數據梳理工做目標:.net
n 一份完整的主數據;設計
最終得出一份完整的,沒有重複的,與現實情況最相符的數據集合。3d
n 統一的副本數據對象
將副本數據與主數據不一致的地方進行修改,使之與主數據保持一致;ip
數據梳理手段:內存
n 數據排重引擎
n 人工干預
下面介紹一個筆者在項目實施中開發的數據排重引擎,若是在公司內部應用集成項目中有應用需求,能夠前來索取使用。
圖 首頁
JFrame作的東東,徹底輕量化的,如今用的MySql庫。若是考慮安裝問題之後能夠用一個內存數據庫或者直接用文件。清洗的時候,感受用直接用文件作也會比較快。
圖 數據建模
最開始的是主數據建模了。這個小工具和UAP開發平臺還不太同樣,由於主數據模型比較簡單,因此直接用模型描述了之後存在數據庫中的主數據註冊表中了。而後寫了一個描述引擎,把全部的主數據都轉化爲內部的MDMdescrip對象和DataContener對象,這樣就能夠直接在頁面使用了,不用重啓的。由於小工具偏重排重引擎,因此沒在這方面下太大工夫,顯示模板沒有配置,將就看吧。
圖 數據管理
默認的主數據管理頁面,實現簡單的增刪改功能,沒有查詢的配置。
圖 Kettle副本數據導入
主數據註冊的時候有一個副本數量,系統默認爲每個副本生成之後存儲空間。只要經過kettle工具將副本數據導入到清洗工具後臺數據庫中就能夠了。
圖 排重算法設計
排重算法設計是亮點啊,有兩個閥值,大於第一個閥值就算數據同樣了。小工具就自動處理了。第一個和第二個之間則須要人工手工干預一下。小於第二個就算不一樣的數據可。能夠爲每一個比對字段設定權值和算法。如今的算法還比較少,最近剛剛增長了一個帶分詞和語意判斷的。之後會根據項目需求隨時添加,好比那個對郵件比對的,zhangxu@yonyou.com和zhangxu@ufida.com.cn就應當是一我的,這個屬於特殊狀況,因此要在項目現場開發,之後通用的算法還能夠有參數設定。這個算法庫之後是這個工具的最大價值。
圖 數據排重
對數據的排重,三千條數據大概用了48秒,頁面的清洗報告還不能實時滾動。並且全部的數據是一次讀到內存中的,碰到幾萬條的數據估計就要崩了,因此之後大數據量的要用文件方式處理就沒問題了。
圖 排重結果處理
自己排重結果的處理應該分紅兩種,一種是生成主數據,一種是副本數據與主數據一致,這裏只作了第一種。其實大部分狀況是把處理報告導出來交給用戶去作,涉及到數據的問題都很關鍵,咱們可肯定不了。最後用戶處理好後,導入主數據系統就可使用了。