主数据方法论之历史数据梳理
主数据的历史数据梳理工作,工作内容简单,工作目的明确,所以部分的工作涉及的理论知识很少,需要探讨的问题也不多。但是恰恰是这部分工作占据了主数据管理项目实施工作的大部分时间。如何借助工具软件,提高数据清洗工作效率则成为了该阶段工作的重点内容,也是保证主数据管理项目利润率的关键点。
数据梳理工作的对象:
每个主数据所对应的副本数据;
数据梳理工作目标:
n 一份完整的主数据;
最终得出一份完整的,没有重复的,与现实状况最相符的数据集合。
n 统一的副本数据
将副本数据与主数据不一致的地方进行修改,使之与主数据保持一致;
数据梳理手段:
n 数据排重引擎
n 人工干预
下面介绍一个笔者在项目实施中开发的数据排重引擎,如果在公司内部应用集成项目中有应用需求,可以前来索取使用。

图 首页
JFrame做的东东,完全轻量化的,现在用的MySql库。如果考虑安装问题以后可以用一个内存数据库或者直接用文件。清洗的时候,感觉用直接用文件做也会比较快。
图 数据建模
最开始的是主数据建模了。这个小工具和UAP开发平台还不太一样,因为主数据模型比较简单,所以直接用模型描述了以后存在数据库中的主数据注册表中了。然后写了一个描述引擎,把所有的主数据都转化为内部的MDMdescrip对象和DataContener对象,这样就可以直接在页面使用了,不用重启的。因为小工具偏重排重引擎,所以没在这方面下太大工夫,显示模板没有配置,将就看吧。
图 数据管理
默认的主数据管理页面,实现简单的增删改功能,没有查询的配置。
图 Kettle副本数据导入
主数据注册的时候有一个副本数量,系统默认为每一个副本生成以后存储空间。只要通过kettle工具将副本数据导入到清洗工具后台数据库中就可以了。
图 排重算法设计
排重算法设计是亮点啊,有两个阀值,大于第一个阀值就算数据一样了。小工具就自动处理了。第一个和第二个之间则需要人工手工干预一下。小于第二个就算不同的数据可。可以为每个比对字段设定权值和算法。现在的算法还比较少,最近刚刚增加了一个带分词和语意判断的。以后会根据项目需求随时添加,比如那个对邮件比对的,[email protected]和[email protected]就应当是一个人,这个属于特殊情况,所以要在项目现场开发,以后通用的算法还可以有参数设定。这个算法库以后是这个工具的最大价值。
图 数据排重
对数据的排重,三千条数据大概用了48秒,页面的清洗报告还不能实时滚动。而且所有的数据是一次读到内存中的,碰到几万条的数据估计就要崩了,所以以后大数据量的要用文件方式处理就没问题了。
图 排重结果处理
本身排重结果的处理应该分成两种,一种是生成主数据,一种是副本数据与主数据一致,这里只做了第一种。其实大部分情况是把处理报告导出来交给用户去做,涉及到数据的问题都很关键,我们可确定不了。最后用户处理好后,导入主数据系统就可以使用了。
转载于:https://my.oschina.net/u/2244779/blog/322951