原创:水豚君  

1 企业数据分类

分类方式1:

元数据(metadata),引用数据(Reference Data),主数据(Master Data),企业结构数据(Enterprise structure Data),交易活动数据(Transaction Activity Data),交易审计数据(Transaction Audit Data)。

分类方式2:

交易数据(业务数据)、主数据以及元数据。

分类方式3:

主数据、元数据、引用数据、事物数据。

引用数据:元数据的可能取值范围,我们设计表时所说的数据字典往往就是引用数据。比方,性别仅仅能是男和女,男和女就是引用数据。国家的引用数据就是世界上这100多个国家和地区。通常而言,引用数据语义性较强且更新频率很低。

企业结构化数据:企业业务中所需的数据实体 ,可能是多个主数据的集合。不同行业的结构化数据会有非常大不同。

交易审计数据:我们对数据的全部活动都通过交易审计数据进行记录。比方我们对客户信息改动的操作,对交易的添加和删除操作,这些活动在非常多关键系统(比方银行)都须要记录,以合符对应法规的要求(如 Basel II、萨班斯—奥克斯利法案)。

2 主数据管理的主要内容

主数据(MD Master Data):在各系统中交互共享、表示实体对象的基准数据。

主数据管理(MDM Master Data Management)保证系统之间主数据的实时性、完整性和有效性的一组约束和方法。

摘自中国信息通信研究院《主数据管理实践白皮书(1.0)》

 聊聊主数据管理(MDM)_数据

主数据标准体系

主数据标准体系包含业务标准(编码规则、分类规则、描述规则等)、主数据模型标准。主数据标准体系在建设梳理的过程中,一般会衍生出一套代码体系表或称主数据资产目录。

   (1)主数据业务标准

是对主数据业务含义的统一解释及要求,包括主数据来源、主数据的管理级次、统一管理的基础数据项、 数据项在相关业务环境中产生过程的描述及含义解释、数据之间的制约关系、数据产生过程中所要遵循的业务规则。主数据业务规则包含主数据各数据项的编码规范、分类规则、描述规则(又称命名规范 )等。

       (2)主数据模型标准

包含:主数据逻辑模型和主数据物理模型。
       主数据逻辑模型:将高级的业务概念以主数据实体/属性及其关系的形态在逻辑层面上更详细的表达出来,主要的表现形式是ERD(实体关系图)。
       主数据物理模型又称主数据的存储结构表。

       (3)主数据代码体系表

在某些领域内,又称主数据资产目录。是描述企事业单位信息化建设过程中所使用的主数据代码种类、各类主数据代码名称、代码属性(分类、明细、规则等)、采(参)标号及代码建设情况的汇总表,是企业主数据代码查询和应用的依据,同时也是主数据代码的全局性和指导性文件。

主数据管理保障体系

主数据管理保障体系包括主数据管理组织、制度、流程、 应用及管理评价五部分。

     (1)主数据管理组织

主要包括企业内各类主数据的管理组织架构、运营模式、角色与职责规划, 通过组织体系规划建立明确的主数据管理机构和组织体系,落实各级部门的职责和可持续的主数据管理组织与人员。

     (2)主数据管理制度

规定了主数据管理工作的内容、程序、章程及方法,是主数据管理人员的行为规范和准则,主要包含各种管理办法、规范、细则、手册等。

     (3)主数据管理流程

是提升主数据质量的重要保障,通过梳理数据维护及管理流程,建立符合企业实际应用的管理流程,保证主数据标准规范得到有效执行。主数据管理流程可以以管理制度的方式存在,也可以直接嵌入到主数据管理工具中。

主数据管理流程主要包含以下三个方面的内容:

· 主数据业务管理流程
对主数据的申请、校验、审核、发布、变更、冻结、归档等进行全生命周期管理,满足主数据在企业深入应用的不同管理需求。

· 主数据标准管理流程
通过对主数据标准的分析、制定、审核、发布、应用与反馈等流程进行设计,保证主数据标准的科学、有效、适用。

· 主数据质量管理流程
对主数据的创建、变更、冻结、归档等业务过程进行质量管理,设计数据质量评价体系, 实现数据质量的量化考核,保障主数据的安全、可靠。

     (4)主数据应用管理

是保障主数据落地和数据质量非常重要的一环。主数据应用主要包含三部分内容:明确管理要求、实施有效的管理、 强化保障服务。

· 明确管理要求
制定主数据应用管理制度规范,对主数据的应用范围、应用规则、管理要求和考核标准做出明确规定,并以此为依据,对主数据应用进行有效管理。
应用范围:每一类主数据都要有适用范围的规定,具体应用时必须按照适用范围来执行,对应用中出现的不适用的情况要有应对机制。 应用规则:包括数据同步规则、代码映射、归并和转换规则、 异常处理规则等,对代码映射、归并和转换规则,要有相应的原数据定义和记录。
管理要求:包括管理岗位和职责、管理流程、 管理指标和考核要求。
考核标准:规定主数据应用考核标准,包括覆盖度、准确度、及时性、有效性、安全性等

· 实施有效管理
主数据应用点多、面广、线长,管理难度很大,要实施有效管理,就必须要有健全的制度和可行的手段,在关键控制节点实施重点管理。

· 强化服务保障
依靠便捷、可靠的主数据服务为主数据应用提供保障,包括主数据查询、主数据同步、主数据申请和主数据调用。

     (5)主数据管理评价

是用来评估及考核主数据相关责任人职责的履行情况及数据管理标准和数据政策的执行情况 。

主数据管理工具

主数据管理工具是主数据标准文本发布、主数据全生命周期管理的重要平台。

主数据管理工具主要包括数据建模、数据整合、 数据管理、数据服务、基础管理、标准管理等功能模块。

      聊聊主数据管理(MDM)_数据_02

      (1)主数据建模

主要以主数据标准体系为基准,通过可视化建模工具,定义主数据对象、编码规则、属性值和控制流程等基础要素,构建主数据标准模型。

      (2)主数据整合

主要利用数据清洗工具及扩展功能,将各系统生成的主数据进行汇集、依据主数据标准和主数据模型定义的规则进行校验、清洗、发布, 实现对主数据的全生命周期管理,并整合出统一的、可信任的主数据。

      (3)主数据管理

按照标准主数据管理规程的要求,通过严格的管理流程,实现主数据创建、审批、发布、修改、冻结和失效等全生命周期管理以及数据字典的管理维护,确保数据的一致性、准确性、实时性和权威性。

      (4)主数据存储和服务 

主数据平台发布的基准数据, 集中存储于主数据 基准库,提供在线查询和订阅功能,并通过流程驱动和消息驱动的标准接口提供数据共享服务。

      (5)标准文件资料管理

利用外部公共文档管理系统或内置管理功能,实现标准文件和相关资料的存储管理、版本管理和标准目录管理,配置智能化搜索引擎,实现智能、快捷、精确高效的查询检索功能。

      (6)基础管理

主要实现对系统中的基础数据进行设置,配置灵活、安全可靠的权限管理及日志管理,包括用户、用户组、角色、资源、流程配置等,以及对各类主数据的进行统计分析,为主数据应用评价提供有力支撑。

主数据管理的实施要点

聊聊主数据管理(MDM)_主数据_03

3主数据的分类

分类方式1:

       按数据内容和性质主数据可以分为三类:代码数据类、基础数据类、交易数据类。

· 代码数据

一般指各类数据字典。

· 基础数据

一般是数据量相对较少、变化相对缓慢的用于支撑其他业务活动开展的核心数据,如教师信息、学生信息等。

· 交易数据

一般指数据量较大、产生较快的业务数据,如一卡通交易流水、学生课表、学生成绩等。

分类方式2:

主要包括配置型主数据和核心主数据。

· 配置型主数据

是描述业务或核心主数据属性分类的参考信息,会在整个组织内共享使用。一般依据国际标准、国家标准、行业标准或企业标准和相关规范等,在系统中一次性配置使用的基础数据,例如国家、 民族、性别等规范性表述。配置型主数据相对稳定,不易变化。

· 核心主数据

指用来描述企业核心业务实体的主数据,是企业核心业务对象、交易业务的执行主体,如产品、物资、设备、组织机构、员工、供应商、客户、会计科目等。核心主数据是企业信息系统的神经中枢,是业务运行和决策分析的基础。核心主数据是相对“固定”的,变化缓慢。

 

4 主数据管理平台

主数据管理 = 标准规范+管理平台

管理平台的主要功能:

  • 数据建模(数据模型/数据设计)

对象定义

属性定义

抽取规则

映射规则

编码规则

       校验规则(检验规则)

同步规则(分发规则)

  • 数据采集(数据获取/数据导入/数据集成)

主数据采集方式可以分为三种:  1)文件方式:使用EXCEL模板文件,把数据填充到文件,然后通过页面上传,主数据管理会对上传的数据进行检验、清洗、归一化处理。  2)服务集成:有以下两种形式,                          主数据管理提供批量导入的WEBSERVICE服务,业务系统作为客户端向批量导入服务推送数据;                          可以对接ESB,由ESB来承担服务集成的总接口。  3)数据集成:主要依赖ETL(抽取、转换、装载)工具,支持推/拉、增量/全量增加或更新、实时/计划任务等功能。  每一种方式都需要依据主数据建模后的实体定义。

数据获取方式:

主动

被动

数据传输方式:

同步传输

异步传输

  •  数据清洗(数据处理/数据整合
  • 数据维护(数据管理)

创建

修改

删除

查询

  • 数据分发(数据发布/数据共享/数据交付

      对于数据分发模块,有两种情况:
数据分发场景
由MDM制定导入服务接口,生成服务规范和契约,MDM将数据模型映射到服务规范上面。
外部已有的WSDL服务,MDM直接进行服务映射和分发服务配置,无须编码。
将MDM数据模型直接发布到JMS消息中间件,同时支持外部系统进行消息订阅。
数据不落地场景
由MDM提供数据模型直接发布为主数据服务的功能,即模型可以直接发布为服务。
仍然采用契约先行模式,先定义数据查询服务接口和服务契约,MDM数据模型映射到服务规范上面。
 
对于发布的服务接口本身还需要支持场景的SOAP WS和Rest两种服务接口模式。同时MDM系统本身还需要提供对服务接口的实时监控能力,分发异常告警能力,分发日志的详细统计分析能力等。

  •   数据监管(数据质量/数据治理)

流程管理

版本管理

日志管理

5 主数据管理系统的架构

5.1  架构模式

聊聊主数据管理(MDM)_数据管理_04

聊聊主数据管理(MDM)_主数据_05

聊聊主数据管理(MDM)_数据_06

MDM系统是一个只读的系统,数据改变主要来自源系统。

缺乏弹性。不能加入额外的信息,除非根据需求修改现有的应用。

 

聊聊主数据管理(MDM)_数据_07

聊聊主数据管理(MDM)_数据管理_08

此实现风格假设源系统能够管理好自己数据的质量。MDM系统只管理最小量的信息,用来唯一标识MasterData,并提供在其他系统和数据库中详细数据的引用。

查询此类MDM系统需分两步动态装配信息。首先,在MDM系统中找到需要的信息,然后用获得的identity和引用信息,从源系统中提取详细信息。

实施快、 能提供实时信息,适用于某些复杂的环境:如果一团体不能提供所有的数据,这个风格就特别有用。

除了基本的identity,不能解决数据质量问题。

对现有系统的性能和可靠性特别敏感。

需要严格管理MDM系统和源系统之间的关系,因为源系统的单方面修改会造成MDM系统产生问题。

聊聊主数据管理(MDM)_数据管理_09聊聊主数据管理(MDM)_主数据_10

聊聊主数据管理(MDM)_数据_11

系统使用与ConsolidationImplementation Style(合并风格)类似的方法从源系统获取并构造全局的Master Data Record。在MDM系统中可以查询和更新这个全局的MasterData Record。全局的MasterData Record的更新可以反馈到源系统中,也可以发布给下游的系统。

此风格的优点是能提供全部的MDM功能,但是不会大幅度改变现有的环境。缺点是存在MDM系统以外的MasterData 编写和更新,MDM系统中的数据不是最新的。


聊聊主数据管理(MDM)_数据管理_12

聊聊主数据管理(MDM)_数据_13

在此风格中,MDM系统是唯一能管理Master Data的地方。现存的系统通过MDM的服务接口更新MasterData。在MDM系统中,MasterData 被清洗、匹配和扩充,从而保证数据的质量。

一旦更新被接受后,MDM系统会把这些改变分发给对此感兴趣的应用和用户。可以通过消息方式,也可以批量的方式 发布这些改变信息。

好处是任何Methodof Use (使用方式)均可以实施,包括:collaborative, operational 和 analytical。

不利的地方是:高成本和复杂度。所有的更新均会导向MDM系统,这意味着现存应用、商业流程、甚至机构结构也要相应发生变化。


总结

聊聊主数据管理(MDM)_数据管理_14

聊聊主数据管理(MDM)_数据管理_15

5.2 实现方式

基于 ETL 工具

一般的 ETL 工具本身就具有连接各种异构数据源和变化捕捉的能力, 采用它来实现 MDM 中异构系统的数据触发、整合和发布应该是顺理成章的事情,当前 Oracle,IBM,Informatica 等许多具有自己 ETL 工具的厂商都推出了基 于 ETL 工具的主数据管理解决方案。

当某个主数据的源发生变化时,ETL 的 CDC(变化数据捕捉)功能就会捕获到变化,进而将变化的数据传输到主数据管理系统的临时存储区,然后 ETL 工具根据定义的数据转化规则对数据进行清洗转化,形成主数据,进而 ETL 调用审批监管流程。一旦获得审批,ETL 即可将主数据同步到主数据存储系统, 同时分发给各个订阅该主数据的业务系统。

这里要注意的是主数据的审批监管流程,如果 ETL 本身自带流程引擎最好,可以支撑流程的设计、运行、监控,否则 ETL 工具必须可以调用其它的工作流引擎,当前主流的 ETL 工具一般都可以实现与 SOA 的无缝集成,既可以将数据转化或者封装为 web 服务,也可以调用外部的 web 服务。

基于ETL工具设计的架构好处是效率高,毕竟 ETL 是以处理数据见长,缺点是该架构最好不要跨越广域网,因为一般来讲,ETL 工具都是在局域网内使用,如果网络不稳定,有可能造成数据的不一致。

基于SOA 架构

在该方案中, 采用 ESB (企业服务总线) 技术构建应用集成平台, 采用 web service 方式实现在多个系统间应用集成和互联互通。

应用集成平台是数据采集、数据交换及服务提供能力的直接承载。数据的收集和分发采用各种应用和适配器实现,各种应用适配器一般提供变化数据的的轮询或者推送功能。

监控管理可以采用 SOA 中的工作流引擎来实现,同时 SOA 中的流程监控系统可以对整个主数据的收集、转化、审批分发提供端到端的监控。

采用 SOA 技术设计的主数据管理架构基于 J2EE 的开放架构,会非常灵活,同时便于和其它系统集成, 系统的扩展性比较好,其问题在于如果主数据同步的量非常大,效率会有一定问题。

6  数据集成模式

6.1 数据联邦  

数据联邦(也有翻译成数据联合)提供了一种创建对数据消费者(应用)角度看数据集成视图,数据逻辑看上去存在一个位置,但实际的物理位置却可能在多个数据源中。也可以说,数据联邦技术提供了一种为数据提供抽象的数据接口的能力。这些多个数据源组成的虚拟视图可以使数据消费者(应用)不需要知道数据的物理位置、数据结构和保存方式。

一些ETL工具或者ETL的开发人员希望通过一个中间层来加载数据,而不需要了解过多的复杂的不同数据源的数据结构,数据联邦简化了实施和开发的过程。

利用批量任务或者ETL的方式创建数据集市和数据仓库的方式由于实时性不好,在很多应用场景中被数据联邦技术所取代。

一些企业由于业务发展数据模型处于不断变化改进的阶段,由于数据联邦没有实际数据,因此可以很快的适应这样的变化。

数据联邦可以很快速的开发抽象的数据服务接口。

提供统一的主数据视图:随着企业主数据管理的开始和发展,数据联邦提供了一种比较简便的集成解决方法。

缺点

由于访问数据是通过一个“联邦”视图(federation view)来实现的,视图是实时的,因此数据转换是一个重点,但是却无法解决数据质量和性能问题。随着企业数据量的增大,性能问题是所有数据集成(Data Integration tools)都面临的问题,但是由于设计思路的缺陷,数据联邦在这方面虽有很大进展,但是也无法和另外一些数据集成技术相比。

数据质量管控(data quality assurance)意味着数据规则(data rule)加载、数据检验(data validation)执行,这也不是“联邦”视图(federation view)解决现实数据集成问题的优先考虑的因素。
       数据联邦(data federation)的缺点制约了它在数据集成领域的适用性,虽然很多领域都使用了数据联邦(data federation)技术,但是在关键的核心业务系统它的应用非常少。

适用场景

使用简单的有限的数据源,数据结果集不大,只读性的数据访问,数据质量要求简单。

对及时投入生产要求较高的应用,数据联邦允许应用直接访问数据,而不需要耗时较长的数据架构的调整。
       如果数据安全性要求较高的企业,不允许对数据进行复制和备份的场景下,数据联邦是很好的解决方案。
       要求实时访问数据,数据可以是结构化的,也可以是非结构化的。
       数据经常变换的环境下,数据联邦是灵活性和扩展性高的解决方案。

不适用场景(或者风险较大的场景)

集成场景中包含复杂数据转换的,会由于数据转换会减低响应时间而带来负面的影响。
       真实数据源服务器会的负载会有所增加。联邦服务器会把联邦视图分解为多个子操作,这些子操作会传送给数据源服务器,这些子操作越复杂这些源服务器的负载越大。
       如果数据结果集非常大时,性能会降低。
       对可用性要求较高的应用,由于数据联邦依赖于多个数据源,而这些数据源的高可用性是数据联邦技术无法保证的。

6.2  中间件模式

       中间件模式通过统一的全局数据模型来访问异构的数据库、遗留系统、Web资源等。中间件位于异构数据源系统(数据层)和应用程序之间,向下协调各数据源系统,向上为访问集成数据的应用提供统一数据模式和数据访问的通用接口。各数据源的应用仍然完成它们的任务,中间件系统则主要集中为异构数据源提供一个高层次检索服务。

中间件注重于全局查询的处理和优化, 相对于联邦数据库系统的优势在于: 它能够集成非数据库形式的数据源, 有很好的查询性能, 自治性强; 中间件集成的缺点在于它通常是只读的, 而联邦数据库对读写都支持。

典型的基于中间件的数据集成系统主要包括中介器和包装器, 其中每个数据源对应一个包装器, 中间件通过包装器和各个数据源交互。中介器的功能是接收针对全局模式生成的查询,根据数据源描述信息及映射规则将接收的查询分解成每个数据源能够处理的子查询,再将子查询发送到每个数据源的包装器。

包装器对特定数据源进行了封装, 将其数据模型转换为系统所采用的通用模型, 并提供一致的访问机制。中介器将各个子查询请求发送给包装器, 包装器将这些子查询翻译成符合每个数据源的子查询执行, 并把查询结果返回给中介器。中介器将接收的所有数据源的结果合并成一个结果返回给用户。

聊聊主数据管理(MDM)_数据管理_16

在Web Services的框架下使用一组Web Service协议构建信息集成系统。为中间件的数据访问接口创建一个Web Service,然后使用WSDL向服务中心注册。客户端首先向注册中心发送查找请求,然后通过SOAP协议调用数据访问接口,从这些数据源获取数据。这种方法具有完好封装、松散耦合、规范协议和高度的集成能力等特性。

聊聊主数据管理(MDM)_数据管理_17

该系统有五个核心模块:

(1)中间件配置模块:配置中间件和各个异构数据库的连接信息,包括数据库地址、登录用户名、密码、数据库名。

(2)查询分解模块:根据数据源描述信息及映射规则将接收的查询分解成每个数据源的子查询。

(3)子查询发送模块:分析用户提交的查询语句,从中找出该查询需要的数据源,然后到中间件的配置信息中查找相应的包装器,把连接信息和子查询发送到对应的包装器。

(4)子查询执行模块:子查询模块根据不同的数据库类型,加载对应的JDBC驱动程序,实现多个不同数据库的查询操作。

(5)查询结果重组模块:查询结果重组模块收集子查询的结果,这些结果是以DataSet的形式存在的,然后合并为一个大的DataSet作为最终的结果。返回给客户端时,根据DataSet生成一个结果XML文件给客户端,完成整个查询流程。

 

6.3  数据仓库

数据仓库是在企业管理和决策中面向主题的、集成的、与时间相关的和不可修改的数据集合。该方法需要建立一个存储数据的仓库,定期从数据源过滤数据,然后装载到数据仓库。

7 主数据管理主要厂商及产品

当前各个 IT 厂商象 Oracle,IBM,Teradata,Informatic 等等都推出了自己的主数据管理系统,这些厂商的解决方案大致三类:

一是原来从制造 业主数据管理演变过来的传统产品、客户资料管理系统;

二是原来的 ETL 厂商 基于自己的 ETL 工具建立的主数据管理系统;

三是基于现有的 SOA 技术实现的 主数据管理系统,从功能架构上比较相似。

聊聊主数据管理(MDM)_数据管理_18


8 参考资料

中国信息通信研究院《主数据管理实践白皮书(1.0)》

《基于全生命周期的主数据管理MDM详解与实践》

《SAP MDM主数据管理》

《基于开源平台的高校主数据管理平台分析与设计》  

《Oracle SOA 主数据管理解决方案 》

《主数据分类及其编码管理体系的信息化建设》

《企业主数据管理体系与方法》