主数据方法论之历史数据梳理算法
主数据的历史数据梳理工做,工做内容简单,工做目的明确,因此部分的工做涉及的理论知识不多,须要探讨的问题也很少。可是偏偏是这部分工做占据了主数据管理项目实施工做的大部分时间。如何借助工具软件,提升数据清洗工做效率则成为了该阶段工做的重点内容,也是保证主数据管理项目利润率的关键点。数据库
数据梳理工做的对象:工具
每一个主数据所对应的副本数据;大数据
数据梳理工做目标:.net
n 一份完整的主数据;设计
最终得出一份完整的,没有重复的,与现实情况最相符的数据集合。3d
n 统一的副本数据对象
将副本数据与主数据不一致的地方进行修改,使之与主数据保持一致;ip
数据梳理手段:内存
n 数据排重引擎
n 人工干预
下面介绍一个笔者在项目实施中开发的数据排重引擎,若是在公司内部应用集成项目中有应用需求,能够前来索取使用。
图 首页
JFrame作的东东,彻底轻量化的,如今用的MySql库。若是考虑安装问题之后能够用一个内存数据库或者直接用文件。清洗的时候,感受用直接用文件作也会比较快。
图 数据建模
最开始的是主数据建模了。这个小工具和UAP开发平台还不太同样,由于主数据模型比较简单,因此直接用模型描述了之后存在数据库中的主数据注册表中了。而后写了一个描述引擎,把全部的主数据都转化为内部的MDMdescrip对象和DataContener对象,这样就能够直接在页面使用了,不用重启的。由于小工具偏重排重引擎,因此没在这方面下太大工夫,显示模板没有配置,将就看吧。
图 数据管理
默认的主数据管理页面,实现简单的增删改功能,没有查询的配置。
图 Kettle副本数据导入
主数据注册的时候有一个副本数量,系统默认为每个副本生成之后存储空间。只要经过kettle工具将副本数据导入到清洗工具后台数据库中就能够了。
图 排重算法设计
排重算法设计是亮点啊,有两个阀值,大于第一个阀值就算数据同样了。小工具就自动处理了。第一个和第二个之间则须要人工手工干预一下。小于第二个就算不一样的数据可。能够为每一个比对字段设定权值和算法。如今的算法还比较少,最近刚刚增长了一个带分词和语意判断的。之后会根据项目需求随时添加,好比那个对邮件比对的,zhangxu@yonyou.com和zhangxu@ufida.com.cn就应当是一我的,这个属于特殊状况,因此要在项目现场开发,之后通用的算法还能够有参数设定。这个算法库之后是这个工具的最大价值。
图 数据排重
对数据的排重,三千条数据大概用了48秒,页面的清洗报告还不能实时滚动。并且全部的数据是一次读到内存中的,碰到几万条的数据估计就要崩了,因此之后大数据量的要用文件方式处理就没问题了。
图 排重结果处理
自己排重结果的处理应该分红两种,一种是生成主数据,一种是副本数据与主数据一致,这里只作了第一种。其实大部分状况是把处理报告导出来交给用户去作,涉及到数据的问题都很关键,咱们可肯定不了。最后用户处理好后,导入主数据系统就可使用了。