写点什么

主数据与主数据管理

用户头像
KoLee
关注
发布于: 刚刚
主数据与主数据管理

前言

主数据被普遍定义为组织/系统间共享的描述业务实体的数据, 属性相对稳定, 变化缓慢。

主数据管理是对为了保证主数据的质量(准确性,完整性)和合理使用而建设或者实施的制度, 流程、系统。主数据管理不是一个单一的短期项目,而是一个长期的,贯穿整个企业发展历程的一系列的活动

比较早关于主数据的讨论起源与 20 世纪 90 年代中后期,热度持续到 21 世纪的第一个十年左右。背景是由于部分数字化先行的海外企业,在企业信息化建设过程中,建设大量的烟囱式业务系统。 受限与经验和技术的制约等因素, 企业各个系统数据并不互通,从而导致的各种数据问题(数据质量,数据口径,数据安全等)。

近两年由于疫情的催化和国家层面的倡导, 传统企业纷纷加快数字化步伐。 数据资产被做为重要生产要素, 主数据,主数据管理、数据治理等相关概念又被变得流行起来。

本文的讨论范围限定如何通过技术和系统层面进行主数据管理,不涉及相关组织,规范部分的讨论。

主数据管理方案

关于主数据的管理,数据仓库大师 Ralph Kimball 团队 在 2007 总结讨论了三种常见方法,现在仍未完全过时。

基于数据仓库构建与管理主数据

数据仓库在建设之处就是为了解决数据集成的问题,通过 ELT 过程,数据仓库得到集成后的数据。这部分可能涵盖了企业主数据(一般存储在维度表中),天然的 各个系统从数据仓库中获取需要共享的,被清洗和集成后的数据。

此方案流程图可以参考如下图 1:



通过数仓承担主数据管理的方案直观并且相当想当然,它能解决部分问题, 但有非常明显的弊端。kimball 团队提到, 数据清洗在 ETL 过程中而非源业务系统完成,是其主要弊端之一。 本文稍后讨论此方案更多的弊端。

MDM 集成中心

相对与数仓被动的承担了主数据管理的部分职责,这种方案引入了专门的集成中心来完成主数据的收集,清理和分发工作。数据仓库成为了 MDM 的下游系统之一。



集成的 MDM 相对数据仓库,从架构上相对清晰了一些。从功能上,也可以提供一些接口服务(大部分数据都是 T-1 的数据), 满足一些对主数据时效性的要求。

这种架构,仍然不是从源头处清洗数据, 而是在 MDM 中存数据。

现在我们看到很多专业的 MDM 系统都是基于这种架构实现的

企业级 MDM 系统

第三种方案是企业级 MDM 系统,相对集成中心 MDM 设计。这种方案需要创建一个集中式数据库,它会保存主数据所有属性主版本并提供接口供事务系统调用。 MDM 直接作为业务系统的数据库。

业务系统不在单独维护(改成存储比较合适)主数据,而是集中式在企业 MDM 系统中创建、查询和更新。

 


相较于前两种方案,这种方案在数据源头进行数据清洗,并提供服务。不存在数据被转移后再次清理分发的弊端。

这种方案在方向上是先进和前瞻的(考虑到这是 2007 年的文章),从技术层面讲可以比较好的解决主数据管理的问题。但是集中的管理要求事务(业务)系统不在单独存储业务主数据,哪怕是它业务范畴的主数据。

想象一下让 CRM 放弃对客户主数据的存储,转而统一到 MDM 系统中维护,就能理解这个方案的实施难度。 实际上,这对 MDM 维护者也是一个挑战,他需要了解几乎所有系统的逻辑。

第四种方法-把主数据还给业务系统

随着微服务和服务治理技术方向的进步,让第四种方案成为可能。企业级 MDM 的最大难点是让让业务系统放弃对其拥有主数据的管理权, 统一到 MDM 管理分发, 我们可以考虑在做一次分离,将集中式的系统分散到各个业务系统自管理,并自行对外提供服务。

 


各业务自行维护统一的主数据, 每一类主数据都有统一的系统承载, 其它系统需要使用就通过实时接口的方式互相调用。

传统的 ERP 系统(CS 架构)往往对此方案的第一反应是技术维护难度大, 需要大量的接口查找和开发调用工作。 在微服务体系下, 这些不再是不可逾越的难点。

这和业务中台的设计思想和定位是一致的。

对比与选型

对比

当我们仔细对比在四种方案, 实际上代表了两类实现思想:集中式第三方管理业务自治

方案 1 和方案 2 是典型的集中式管理,所有的主数据均流入到第三方系统(数仓, 集成 MDM), 有第三方系统实现收集, 清理, 集成,分发工作。

方案 4 是彻底的业务自治,每个主数据都有专门承载管理对应实体的业务系统和业务负责人(业务负责人,产品经理,技术),在系统内实现自给管理并对外提供服务。

方案 3 更像是在某种技术背景下的折中方案, 它意识到第三方管理的弊端,识别到主数据应该是由对应的业务系统负责。但是集中式数据库的解决方案,在落地上会有诸多问题, 同时它将所有主数据工作集成到一个 MDM 系统中,违背了架构设计高内聚,低耦合的原则。

选型

  现在到了讨论如何选型的阶段了,我们知道第四种方案是主数据管理的理论上的理想形态。理想很饱满,现实很骨感,如何选型仍需要考虑企业自身现状,数字化所处的阶段,人才和技术储备等多因素考虑。

  在传统企业,进行数据化建设早期,各业务系统还未完全建立,大部分业务实体还未有对应的业务系统,企业 IT 人员也没有足够的精力去快速建设。在这一阶段一个集中式的 MDM 系统可以快速的集成一些没有系统承载的主数据管理能力。

随着数字化建设的深入, 越来越多的业务系统被建设起来。 此时,集中式 MDM 管理的弊端将会放大(参考:), 此时应该根据企业的 IT 实力和长远规划判断。如果有一定的企业 IT 能力, 仍然需深入数字化的目标的和决心(有数字孪生口号的团队都要仔细思考),是时候应该考虑把业务数据还给业务系统了

至于成本,拉长来看。不论是外包还是自建,二者的投入成本都不会相差太远。

延展话题

稳定不变的主数据?

所有对于主数据的定义都提到,主数据的属性是稳定的, 缓慢变化的。这里似乎隐含了两层含义:1. 缓慢变化意味着不怎么需要专门管理,甚至不需要一个专门的系统,2,其是和快速变化事务数据是不一样的,所以需要区分管理。

在这一定程度上误导了决策者, 缓慢变化仍然是需要被关注和管理的,更需要被系统化。 因为常常缓慢变化的属性都是非常重要的属性,它一旦变化,影响面会非常广。能管理快速变化数据的系统, 同样可以管理缓慢变化的属性, 我们不需要刻意从系统层面区分。

实施 MDM 时的其他讨论

 不论采用集中式统一 MDM 系统管理, 还是分布式各业务自治。 在进行主数据管理时,有以下点我们都应该关注:

1. 主数据确保全局只存一份

在一些现实实践中,各业务系统经常会在自己的业务 db 存储一份主数据,这会导致很多隐患。

• 业务系统可能不会定期去 MDM 中拉取, 当主数据发生变化时,业务对历史数据的处理也是一个棘手的难题。

•  业务系统可能会修改自己存储的主数据

 保证数据的最终一致性,需要做大量的管理工作, 数仓往往是最大受害者。

1. 主数据应该实时获取

为了实现主数据目标和确保数据全局存储一份, 业务系统在获取主数据时都应该实时获取,而不是通过离线分发的方式。

2. 主数据的归属

  在一些传统企业中,部分主数据常常找不对应的业务归属,此时 IT 部门可以承担起对应主数据的权责。

主数据管理成功的目标

 届时,各主数据都有归属的业务线上系统(含对应的业务负责人,产品,技术负责人),所有的变更都在对应的业务系统中实施,其他系统需要就实时调用对应业务系统。

 标准就是,当大家不再频繁提起主数据管理(治理)时,就是主数据管理成功之时。笔者在互联网行业从业多年,极少听到主数据一词。

 

参考文档

1. 数据仓库与商业智能宝典(第 2 版) 成功设计、部署和维护 DWBI 系统- Ralph Kimball etc. 清华大学出版社

2. 主数据管理实践白皮书 中国信通院

3. Wikipedia

4.  https://baike.baidu.com/item/%E4%B8%BB%E6%95%B0%E6%8D%AE/7310399?fr=aladdin

5.  主数据管理- 企业数据化建设基础 - 张旭. 电子工业出版社

发布于: 刚刚阅读数: 5
用户头像

KoLee

关注

团队有产出,个人有成长。 缺一不可! 2017.10.18 加入

多年一线互联网开发和数据经验; 企业数字化转型参与者。

评论

发布
暂无评论
主数据与主数据管理