前面我写了一篇关于对元数据和元数据管理的认知和理解的文章,有兴趣的朋友可以去看看。接下来我们讲一讲主数据管理(MDM)。
主数据管理(MDM)
主数据是系统间共享数据,它是系统间信息交换的基准。主数据管理目标是使各系统在获取基准数据时,能够保证数据是最新的、一致的、准确的,能够实时进行各系统间数据验证。
根据主数据管理实施的复杂程度,大体可以把主数据管理可以分为六个层次,从低到高反映了主数据管理的不同成熟度。并非层级越高的主数据管理方式就是最好的,应当根据数据本身的质量与现有体系情况,选择合适的治理层级。
Level 0 :未实施主数据管理
Level 0意味着企业的各个应用之间没有任何的数据共享,整个企业没有数据定义元素存在。比如,一个公司销售很多产品,对这些产品的生产和销售由多个独立的系统来处理,各个系统独立处理产品数据并拥有自己独立的产品列表,各个系统之间不共享产品数据。在Level 0, 每个独立的应用负责管理和维护自己的关键数据(比如产品列表、客户信息等),各个系统间不共享这些信息,这些数据是不连通的。但是,如果业务数据质量极高,也无需主数据管理。Level 0适合业务数据质量极高,且企业有较为完善的数据管理机制,能做到数据源的统一。
Level 1 :列表管理
列表管理是处理数据统一的一种方式。在公司内部,会通过手工的方式维护一个逻辑或物理的列表。当各个异构的系统和用户需要某些数据的时候,就可以索取该列表了。对于这个列表的维护,包括数据添加、删除、更新以及冲突处理,都是由各个部门的工作人员通过一系列的讨论和会议进行处理的。业务规则(Business Rules)是用来反映价值的一致性,当业务规则发生改变或者出现类似的情况时,这样高度手工管理的流程容易发生错误。由于列表管理是通过手工管理的,其列表维护的质量取决于谁参加了变更管理流程,一旦某人缺席,将会影响列表的维护。Level 1适合业务数据质量较高,只有很少数的数据不统一,并且目前已有较完善的文件管理机制的情况。这种情况下仅需提供简单的列表即可处理,但是,大部分情况下建议采取Level 2或更高层次的主数据管理。
Level 2 :事实表管理
Level 2与Level 1相比的不同之处在于,Level 2将主数据存入数据库的事实表中,引入了对主数据的自动管理。通过建立统一的数据标准,将主数据集中存储,提供详细数据的访问和共享,为各个系统间共享使用数据提供了可靠的支持。同时,由于主数据存储在数据库中,所以可以使用数据库CRUD的方式进行操作,能够更科学的管理数据。在未实现数据集成的大多数情况都推荐Level 2。但是如果有数据湖或数据仓库,Level 3或更高层次将会更加合适。
Level 3 :数据湖管理
与Level 2相比,Level 3打破了各个独立应用的组织边界,抽取各个系统的数据集成管理。在这个数据集成的情况下,将主数据管理放入其中统一管理。
企业主数据面临一致性的挑战。数据在不同的地方存在,数据所代表的含义也是不同的,数据的规则各个系统之间也是不一样的。在Level 3,公司对主题域内容采用集中管理方式。这意味着应用系统,作为消费者或使用主数据,拥有一个共识就是数据是主题数据内容的映像,打破了各个独立应用的组织边界。集中处理意味着为主数据管理构建了一个通用的、基于目标构建的平台。然而,大多数公司发现主数据管理正在挑战他们现有的IT架构:他们拥有太多的独立平台处理主数据。Level 3的集中化数据访问、控制跨不同应用和系统使用数据。这极大的降低了应用数据访问的复杂性,大大简化了面向数据规则的管理,比一个分散环境具有更多的功能和特点。在实现数据集成,且各部门没有差异化的数据需求或定时更新数据转化规则时推荐此种方案,但是如果数据需求较高需要用到Level 4或更高层次的主数据管理。
Level 4 :更新管理
在Level 4的架构中,数据湖中的主数据和数据源之间使用ETL工具实现每日批量更新。当主数据记录详细资料被修改后,所有应用的相关数据元素都将被更新。在企业的应用数据库中,数据的编码规则一般都是静态的。然而,在一些极端情况下,数据编码规则会时常发生变动,例如频繁的新增记录,修改记录。在这种情况下,所有系统都是同一个版本:当变更发生时,数据湖中主数据将定时更新,形成改变的直接操作视图。从Level 3到Level 4意味着主数据传播和供应不需要源系统专门的开发或支持,还意味着所有的应用清楚的知道他们并不拥有或控制主数据,他们仅仅使用数据来支持他们自己的功能和流程。由于增加了一项ETL作业,Level 4的开发需要消耗额外的时间。然而,Level 4并不是最高层次的抽象架构,如果需要实现各部门差异化的数据需求时,就需要引入Level 5的流程管理。
Level 5 :流程管理
Level 5可以保证主数据反映一个公司业务规则和流程,并证实其正确性。由于部分公司数据编码相对比较复杂,影响业务数据访问和操作的规则以及策略相对也比较复杂。假定任何一个单一系统可以包含并管理与主参考数据相关的各种类型的规则是不切实际的,工作流和流程整合的支持是必不可少的。总体来说,Level 5通过引入主数据的流程管理,控制数据湖和各源系统中数据的编码/解码,以此同时保证数据湖的统一性和源系统数据需求的多样性。使用Level 5意为着数据源的高度不统一,部门各成一套体系,且数据需求及其复杂。实施一个Level 5级别的主数据管理将相当耗时,且会消耗大量时间和源系统对接。
总结
Level 0未实施主数据管理,Level 1采取一个列表管理主数据,Level 2使用数据库管理主数据,Level 3在数据湖中集成主数据管理,Level 4在数据湖和ETL过程中抽象出主数据管理,Level 5在整个数据流程实现主数据的编码/解码。