主数据方法论之数据分发与共享web
当笔者介绍主数据流转步骤的时候,突然想起了宋丹丹小品中的提到的一个问题,大象装进冰箱里,一共分几步?打开冰箱,装进大象,关上冰箱。主数据在主数据管理体系内的流转也一样分红三步,找到数据源头,把数据存储在主数据系统中,而后再从主数据系统中分发出去。如何把大象装进冰箱中,是第一个场景中的问题难点。而在主数据流转过程当中,最体现价值的是数据的分发与共享过程。若是咱们购买了主数据管理系统,但是各类副本数据依然我行我素,那主数据管理的价值就大打折扣了。之因此咱们强调主数据管理体系,强调行政组织保障和管理规范,最终的目的就是保证副本数据与主数据的一致。数据库
这篇文章谈论主数据分发共享工做中的三个问题。第一,数据如何传递。第二,应用系统获取数据后应当如何处理。第三,如何经过技术手段监督副本数据质量。工具
问题1、主数据的传递:测试
Ø 方式一:数据推送设计
将主数据推送到应用系统中,数据全部者为主动方,数据分享者为被动方。此种方式,是由MDM或者企业服务总线主动的将数据推送到应用系统中。按照面向服务设计理念,应用系统须要开发出一个可以接收主数据的服务,这样数据推送方在进行数据推送的时候就可以调用这个服务将数据传递给应用。与以往的数据推送方式不一样,数据推送者并不关心数据接收者的具体业务逻辑处理,它只负责把数据交给应用,至于应用如何处理都交给接受者处理。此种方式的特色是:数据实时性较强,主数据一发生变更就可以把变更信息广播到体系内的各个角落,而没一个副本数据拥有者都可以在第一时间发生调整。对于数据传递异常的状况,数据推送方作处理,数据若是没有推送成功,那么主动方将决定异常的处理方式。好比,重新推送,或者过段时间再次推送或者直接改成手工处理。资源
Ø 方式二:数据静态获取(拉式)开发
主数据源头发布数据获取服务,静等副本数据拥有者来获取数据。主数据将没有第三方有权限的数据所有暴露出来,等待第三方使用者来调取。主数据源头通常须要提供获取所有数据,获取单条数据,获取某个时间点后的全部最新数据等服务,而数据调用方须要本身编写代码获取数据。通常须要支持自动定时获取和手动同步等模式。数据静态获取方式较为稳定,而且把异常处理的工做交由第三方来完成,若是第三方支持手动获取方式,那么数据传递的准确性就大大的获得了保证。只是此种方式数据实时性较差,一般系统都将同步时间设置为一天左右。webservice
Ø 方式三:在底层数据库层面进行数据拷贝同步
面向服务的应用集成方式是用友应用集成的特色和亮点,可是在长期的实践过程当中,咱们发现形而上学才是最大的问题,面向服务要知其然还要知其因此然。因此在笔者最新的项目中打算采用ETL工具将主数据管理系统的主数据表在每一个副本数据库中都创建一个实时映射的对照表。这样每一个系统就不须要在费力的开发webservice,并且要考虑推送和拉取的方式了。数据直接传到应用的数据库中,第三方应用的开发难度下降很多。须要强调的是,这个方案中绝对不对操做第三方系统中的任何表,只是把数据存储在了新建的几个表中。这个有点像是供应链中的一种模式,供应商并不等待收到甲方的采购单再发货,而是直接在甲方的生产车间创建本身的仓库,甲方随用随取。产品
问题2、应用系统获取主数据后的处理:
从主数据管理的角度看,各个应用系统中的基础数据是标准数据的副本数据,然而这些数据在各自的业务系统中都有本身的定义和定位,这就必然致使了这些基础数据可能存在须要独立维护的私有字段和私有数据。例如:
n HR系统中的党员属性和专业军人属性,这个属性没有出如今主数据标准中,可是在人力资源管理系统却又专门对应的模块管理和维护。
n 帐号主数据中有100条记录,而在某个应用系统中还须要其余可以进行系统的帐号,那么这个系统就应该在这100条记录以外独立维护被系统所需的其余帐号信息。
只有有效的区分主数据的影响范围和私有字段,私有数据的做用范围才可以即享受到主数据管理带来的便利又保证了系统业务的独立性。
问题3、经过技术手段对副本数据质量进行监控:
若是可以在主数据管理系统中存储副本数据,而且保证副本数据与数据源准相同,那么咱们就能够轻易的进行副本数据与主数据一致性的监控了。这样作的好处很是明显,能够有效提升企业主数据管理质量。将大量线下的和有业务反推完成的数据共享工做利用极小的成原本完成。虽然理论上在设计好主数据管理体系后,数据都会在各个系统中自动共享。可是这样的监控体系就好像是在给应用系统作测试同样,让咱们感到对整个体系的放心。
若是当前的主数据管理系统可以融合这部分功能,必然可以成为产品亮点之一。