主数据是老生常谈的话题,很多企业对法规遵从性、快速并购以及管理的重视使得创建和维护准确、完整的主数据成为一项很重要的需求。本文从不同视角由浅入深谈了采用主数据管理的原因、实施过程以及技术实现的几种方案,给正在实施或将要实施主数据的企业提供一点启发。
一、概述
企业在一致性报告、法规遵从性、面向服务的体系结构(SOA)和软件即服务(SaaS)等方面所经历的痛苦促使企业对主数据管理(MDM)产生了极大的需求。本文简单解释了什么是主数据管理,为什么主数据很重要,以及如何管理主数据,同时确定了一些关键的主数据管理模式和最佳实践。
1、认识主数据
大多数软件系统都有数据列表,这些数据由组成系统的几个应用程序共享和使用。例如,ERP系统至少有一个客户主数据、一个项目主数据和一个账户主数据。这些主数据通常是公司的关键资产之一。
2、几个基本概念
有一些非常容易理解和识别的主数据,例如“客户”和“产品”。事实上,许多主数据是通过商定主数据项列表来定义的,例如:客户、产品、位置、员工和资产。但是,如何识别应该由主数据管理系统管理的数据元素要复杂得多,并且不需要这样的基本定义。对于什么是主数据以及如何对其进行限定,存在很多困惑,需要进行更全面的处理。
企业中基本上有六种类型的数据:
(1) 结构化数据:由明确定义的数据类型组成,其模式可以使其易于搜索。一般特点是数据以行为单位,一行数据表示一个实体的信息,每一行数据的属性是相同的。结构化数据的分析使用更为便利,且存在成熟的分析工具;
(2) 非结构化数据:存在于电子邮件、白皮书、杂志文章、企业内部网门户、产品规范、营销宣传资料和PDF文件中的数据。
(3) 事务性数据:与销售、交付、发票、故障单、索赔以及交易相关的数据。
(4)元数据:是关于数据的数据,可以保存在正式的数据库中,也可以以各种其他形式存在,如XML文档、报表定义、数据库中的列描述、日志文件、连接和配置文件。
(5)层次结构数据:存储数据之间的关系。它可以存储为会计系统的一部分,也可以单独存储为对真实关系(如公司组织结构或产品线)的描述。层次数据有时被认为是一个超级主数据域,因为它对于理解和发现主数据之间的关系至关重要。
(6)主数据-是业务的关键名词,通常分为四类:人员、事物、地点和其他关键实体。这些分组中的进一步分类称为主题域、范围或实体类型。例如,人员里有客户、员工和销售人员;在事物里有产品、零件、商店和资产;在地点里有办公地点和地理分区;最后,其他关键实体如内聚引用数据,有诸如合同、担保人和许可证之类的东西。其中一些领域可能会进一步划分。基于不同维度,客户可能会进一步细分,一家公司可能是普通客户,也可能是一次性客户和高价值客户。产品可按部门和行业进一步细分。消费品包装行业(CPG)产品的需求、生命周期和创建、读取、更新、删除周期可能与服装行业的需求、生命周期和创建、读取、更新、删除周期大不相同。域的粒度本质上取决于域内实体属性之间的差异程度。
二、判定主数据的因素
虽然识别主数据实体非常简单,但并非所有符合主数据定义的数据都必须这样管理。本文将主数据的定义缩小到以下标准,这些标准在决定是否应将给定实体视为主数据时应一并考虑。
1、行为
主数据可以通过与其他数据交互的方式来描述。例如,在事务系统中,主数据几乎总是与事务数据有关。顾客购买产品,一个供应商出售一个零件,一个合作伙伴将一箱材料运送到一个地点;员工与他们的经理有层次关系,经理通过总经理向上报告;产品可以是描述其在商店中的位置的多层次结构的一部分。主数据和事务数据之间的这种关系可以从根本上看作是一种名词/动词关系。事务数据捕获动词,如sale、delivery、purchase、email和revocation;主数据是名词。
2、周期
主数据可以通过创建、读取、更新、删除和搜索的方式进行描述。这个生命周期称为CRUD周期,对于不同的主数据元素类型和公司是不同的。例如,如何创建客户在很大程度上取决于公司的业务规则、行业细分和数据系统。一家公司可能有多个客户创建载体,例如通过互联网、直接通过客户代表或通过门店。另一家公司可能只允许通过其呼叫中心的电话直接联系来创建客户。此外,客户的创建方式肯定与供应商的创建方式不同。
3、基数
随着基数(集合中元素的数量)的减少,将元素视为主数据元素(甚至是通常接受的主题域,如customer)的可能性降低。例如,如果一家公司只有三个客户,那么他们很可能不会考虑这些客户至主数据,因为用主数据管理这些客户没有价值。然而,拥有数千名客户的公司会将客户视为一个重要的主数据域,因为在管理如此庞大的一组实体时会伴随着一些问题和好处。这些公司的客户价值是相同的,双方都依赖客户做生意。一个需要客户主数据解决方案,另一个不需要。基数不会更改给定实体类型的分类;但是,随着实体类型基数的增加,使用管理实体类型的主数据系统管理的重要性也会增加。
4、寿命
主数据的变化往往小于事务数据。当它变得更不稳定时,通常会认为它更具事务性。例如,有些人可能认为“契约”是主数据元素。其他人可能会认为这是一笔交易。根据合同的有效期,它的归属不同。一个促进职业运动员的机构可能会把他们的合同当作主数据。每一种都是不同的,通常都有一年以上的寿命。一个名为“运动员”的主数据项可能很诱人,但是运动员往往在任何给定的时间都有不止一个合同:一个是与他们的团队签订的,另一个是与公司签订的产品代言合同。随着时间的推移,该机构将需要管理所有这些合同,因为合同的内容将重新谈判或与运动员交易。其他合同,例如,汽车细节或房屋油漆合同,更像是一笔交易。它们是一次性的、短期的协议,提供支付服务,通常在数小时内完成并销毁。
5、复杂性
简单的实体,甚至是有价值的实体,很少是管理的挑战,也很少被视为主数据元素。元素越不复杂,就越不需要管理该元素的更改。通常,这些资产只是简单地收集和统计。例如,诺克斯堡可能不会跟踪存储在那里的每一根金条的信息,而是只对它们进行计数。每根金条的价值都是可观的,基数高,寿命长,但复杂性低。
6、价值
数据元素对公司越有价值,就越有可能被视为主数据的元素,价值和复杂性是相互作用的。
7、变化
虽然主数据通常比事务性数据的易变性小,但具有完全不变的属性的实体通常不需要主数据解决方案。例如,稀有货币似乎符合主数据处理的许多标准。一个稀有的钱币收藏家可能有许多稀有的钱币。所以,基数很高,它们很值钱,它们也很复杂。例如,稀有硬币有历史和描述。有一些属性,如正面、反面、图例、铭文、边缘和字段的条件。还有其他属性,如设计首字母、边缘设计、层和纵向。
然而,稀有货币不需要作为主数据项进行管理,因为它们不会随着时间的推移而改变,或者,至少,它们的变化还不够。可能需要添加更多的信息,因为特定硬币的历史已经被揭示,或者某些属性必须被纠正。但是,一般来说,稀有硬币不会通过主数据管理系统进行管理。
8、重用
主数据管理的主要驱动因素之一是重用。例如,在一个简单的世界中,CRM系统将管理关于客户的一切,而不需要与其他系统共享关于客户的任何信息。然而,在当今复杂的环境中,客户信息需要跨多个应用系统共享。这就是问题的开始。由于许多原因,对主数据的访问并不总是可用,因此人们开始将主数据存储在不同的位置,例如电子表格和应用系统专用存储区。仍然有一些原因(如数据质量下降和衰退)来管理不能在整个企业中重用的主数据。但是,如果一个主数据实体在多个系统中被重用,那么肯定应该用主数据管理系统来管理它。
总而言之,虽然枚举各种主数据实体类型很简单,但有时决定公司中哪些数据项应视为主数据更具挑战性。通常不符合主数据定义的数据可能需要这样管理,而符合定义的数据可能不需要这样管理。最终,在决定应将哪些实体类型视为主数据时,与其依赖实体类型的简单列表,不如根据它们在业务需求上下文中的行为和属性对它们进行分类。
三、为什么要管理主数据
因为它被多个信息系统使用,主数据中的错误可能会导致使用它的所有信息系统中的错误。例如,客户主数据中的错误地址可能意味着订单、账单和营销资料都发送到了错误的地址。同样,一个项目主管的错误价格可能是一个营销灾难,一个账户主管的错误账号可能导致巨额罚款!
我们看一个典型的主数据故事:一个信用卡客户从北9街2847号搬到了北11街1001号。客户立即更改了帐单地址,但几个月没有收到帐单。一天,客户接到信用卡计费部门的一个催款电话,询问为什么账单没有支付。客户确认他有新的地址,计费部门确认文件上的地址是10011 St.N.客户要求一份账单副本,以便结帐。又过了两个星期没有账单,客户打电话回来,发现账户已经转到了收款机构。这一次,他们发现,尽管档案中的地址是10011 St.N,但账单上的地址是101 11 St.N。经过律师之间的一系列电话和信件,账单最终得到了解决,信用卡公司失去了一位终身客户。在这种情况下,数据的主副本是准确的,但它的另一个副本是有缺陷的。因此,主数据必须正确且一致。
即使主数据没有错误,也很少有组织只有一组主数据。许多公司都是通过并购来成长的。你收购的每家公司都有自己的客户主数据、项目主数据等等。如果你能把新的主数据和你当前的主数据结合起来,这并不是坏事,但是除非你收购的公司在一个遥远的国家从事完全不同的业务,否则很有可能一些客户和产品会出现在这两套主数据中,通常有不同的格式和不同的数据库主键。如果两家公司都使用社会统一信用代码或工商注册号作为客户唯一标识,那么发现哪些客户记录属于同一个客户是一个简单的问题;但这种情况很少发生。在大多数情况下,客户编号和零件编号是由创建主记录的软件分配的,因此同一客户或同一产品在两个数据库中具有相同标识符的可能性非常小。如果从具有不同供应商编号的不同供应商处购买同等零件,则物料管理可能更难协调。
合并主列表可能非常困难。同一个客户在不同的数据库中可能有不同的名称、客户号码、地址和电话号码。例如,威廉·史密斯可能会以比尔·史密斯的身份出现、史密斯和威廉·史密斯。普通的数据库连接和搜索将无法解决这些差异。需要一个非常复杂的工具来理解昵称、替换拼写和输入错误。该工具可能还必须认识到,如果不同的名字都住在同一个地址或有相同的电话号码,它们就可以被解决。虽然创建一个干净的主列表可能是一个艰巨的挑战,但从一个通用的主列表中,会有许多积极的好处:
(1) 一张统一的账单既省钱又能提高客户满意度。
(2)从多个客户列表中向客户发送相同的营销资料会浪费金钱并激怒客户。
(3) 在你把客户账户交给托收机构之前,最好知道他们是否欠你公司其他部分的钱,或者更重要的是,他们是另一个部门的最大客户。
(4)在不同的零件号下存放同一件商品不仅浪费金钱和货架空间,而且可能导致人为短缺。
最近朝着SOA和SaaS的方向发展,使得主数据管理成为一个关键问题。例如,如果您创建一个通过定义良好的XML消息进行通信的单一客户服务,您可能认为您定义了客户的单一视图。但是,如果同一个客户存储在五个数据库中,其中有三个不同的地址和四个不同的电话号码,那么您的客户服务将返回什么?类似地,如果您决定订阅通过SaaS提供的CRM服务,那么服务提供商将需要一个客户列表作为其数据库。你要寄哪一个?
由于所有这些原因,为您的组织维护一组高质量、一致的主数据正迅速成为一种必要。维护这些数据所需的系统和过程称为主数据管理。
四、怎么进行主数据管理
主数据管理(MDM)就是为创建和维护一致且准确的主数据列表所需的技术、工具和过程。在这个定义中有几点值得注意。一是MDM不仅仅是一个技术问题。在许多情况下,为了维护干净的主数据,需要对业务流程进行根本性的更改,而一些最困难的MDM问题更具政治性,而非技术性。二是MDM包括创建和维护主数据。在创建一组干净、一致的主数据方面投入大量的时间、金钱和精力是一种浪费,除非解决方案包括在主数据更新和扩展时保持其干净和一致的工具和过程。
虽然MDM在应用于组织中的所有主数据时最有效,但在许多情况下,很难证明企业范围内工作的风险和费用是合理的。一旦取得了成功并吸取了教训,从几个主要的主数据来源着手并扩大应用范围可能会更容易。如果您的起点很小,则应包含对最终可能要包含的所有主数据的分析,这样您就不会做出设计决策或工具选择,从而在尝试合并新数据源时迫使您重新开始。例如,如果您的初始客户主数据实现仅包括您的直销团队处理的10000个客户,您并不希望您做出的设计决策阻止以后添加10000000个Web客户。
1、主数据的建设过程
MDM项目计划将受到需求、优先级、资源可用性、时间框架和问题规模的影响。大多数MDM项目至少包括以下阶段:
(1)确定主数据的来源。这一步通常是一个很有启发性的过程。一些公司发现他们有几十个数据库,其中包含IT部门不知道存在的客户数据。
(2)确定主数据的生产者和消费者。哪些应用程序生成在第一步中标识的主数据,并且通常更难确定哪些应用程序使用主数据。根据用于维护主数据的方法,可能不需要执行此步骤。例如,如果所有更改都是在数据库级别检测和处理的,则更改来自何处可能无关紧要。
(3)收集和分析主数据的元数据。对于步骤1中标识的所有源,数据的实体和属性是什么,它们是什么意思?这应该包括属性名称、数据类型、允许值、约束、默认值、依赖项以及谁拥有数据的定义和维护。所有者是最重要的,通常也是最难确定的。如果您有一个包含所有元数据的存储库,则此步骤非常简单。如果必须从数据库表和源代码开始,这可能是一项重大的工作。
(4)指定数据管理员。这些人应该了解当前的源数据,并且能够确定如何将源转换为主数据格式。一般来说,管理人员应从每个主数据源的所有者、负责MDM系统的架构师和主数据的核心用户的中任命。
(5)实施数据治理计划和数据治理委员会。该组必须具备知识和权限,以便就如何维护主数据、主数据包含的内容、主数据保存的时间以及如何授权和审核更改作出决定。在一个主数据项目的过程中,必须做出数百个决策,如果没有一个明确的决策机构和过程,项目可能会失败,因为政治阻碍了有效的决策。
(6)构建主数据模型。确定主数据的描述:包括哪些属性、它们的大小和数据类型、允许的值等等。此步骤还应包括主数据模型和当前数据源之间的映射。通常这个过程也是最重要和最困难的一步。如果您试图通过在主实体中包含所有源属性来使每个人都满意,那么您通常会得到过于复杂和繁琐而不实用的主数据。例如,如果您不能决定重量是以磅还是以公斤为单位,一种方法是同时包括两种(重量磅和重量公斤)。虽然这可能会让人们感到高兴,但您正在浪费兆字节的存储空间来存储可以在微秒内计算的数字,并冒着创建不一致数据(WeightLb=5和weightlg=5)的风险。虽然这是一个很小的例子,但更大的问题是为同一个零件维护多个零件号。与委员会的任何努力一样,会因为有分歧导致次优决策。重要的是要事先制定出决策过程、优先级和最终决策者,以确保事情顺利进行。
(7)选择主数据管理工具。您需要购买或构建工具,通过清理、转换和合并源数据来创建主列表。您还需要一个基础设施来使用和维护主列表。
对于所有这些功能,您可以使用单个供应商提供的单个工具集,或者您可能希望采用同类最佳的方法。一般来说,对于不同类型的数据,清理和合并数据的技术是不同的,因此没有很多工具可以跨越整个主数据范围。
工具还应该支持查找和修复数据质量问题以及维护版本和层次结构。版本控制是一个关键的特性,因为了解主数据记录的历史对于保持其质量和准确性至关重要。例如,如果合并工具为波士顿的John Smith合并了两个记录,并且您确定波士顿确实有两个不同的John Smiths,则需要在合并记录之前了解它们的属性,以便“取消合并”。
(8)设计基础设施。一旦有了干净、一致的主数据,就需要将其公开给应用程序,并提供管理和维护它的过程。当这个基础设施被实现时,您将拥有许多依赖于它可用的应用程序,因此可靠性和可伸缩性是设计中要考虑的重要因素。在大多数情况下,您必须自己实现基础设施的重要部分,因为它的设计必须适合您当前的基础设施、平台和应用程序。
(9)生成并测试主数据。在这一步中,您可以使用已开发或购买的工具将源数据合并到主数据列表中。这通常是一个迭代过程,需要修改规则和设置以获得正确的匹配。这一过程还需要大量的人工检查,以确保结果正确,并满足为项目建立的要求。没有任何工具可以在100%的时间内正确完成匹配,因此您必须权衡错误匹配与未匹配的结果,以确定如何配置匹配工具。如果账单不准确,虚假的匹配可能会导致客户不满。错误的匹配太多会使主数据变得不那么有用,因为您没有得到您在MDM中投资所获得的好处。
(10)修改生产和消费系统。根据MDM实现的设计方式,您可能必须更改生成、维护或使用主数据的系统,才能使用新的主数据源。如果主数据在与源系统(例如数据仓库)分离的系统中使用,则源系统可能不必更改。但是,如果源系统要使用主数据,则可能需要进行更改。要么源系统必须访问新的主数据,要么主数据必须与源系统同步,以便源系统具有要使用的已清理主数据的副本。如果无法更改一个或多个源系统,则源系统可能无法使用主数据,或者主数据必须通过外部进程(如触发器和SQL命令)与源系统的数据库集成。
生成新记录的源系统应更改为在创建新记录或更新现有主记录之前查找现有主记录集。这确保了上游生成的数据质量良好,这样MDM可以更有效地运行,应用程序本身可以管理数据质量。MDM不仅应作为一个记录系统加以利用,还应作为一个应用程序来促进企业中所有应用程序之间更干净、更高效的数据处理。作为MDM策略的一部分,数据管理的所有三个支柱都需要考虑:数据源、数据管理和数据使用。如果忽略其中任何一个方面,就不可能有一个健壮的企业级MDM策略。
(11)实施维护流程。如前所述,任何MDM实现都必须包含工具、流程和人员,以保持数据的质量。所有数据必须有一名数据管理员,负责确保主数据的质量。数据管理员通常是一个业务人员,他对数据有一定的了解,能够识别出不正确的数据,并具有纠正问题的知识和权限。MDM基础设施应该包括帮助数据管理员识别问题和简化更正的工具。一个好的数据管理工具应该指出可疑的匹配,例如,不同的名字和客户号码的客户住在同一个地址。管理员可能还希望查看作为新添加的项,因为匹配条件很接近,但低于阈值。对于数据管理员来说,查看MDM系统对数据所做更改的历史记录、隔离错误源并撤消不正确的更改非常重要。维护还包括将更改和添加内容拉入MDM系统,并将清理后的数据分发到所需位置的过程。
MDM是一个复杂的过程,可能持续很长时间。与软件实施项目中的大多数一样,成功的关键是逐步实现MDM,这样企业就可以实现一系列短期的效益,而整个项目就是一个长期的过程。没有业务用户的支持和参与,任何MDM项目都不可能成功。IT专业人员不具备创建和维护高质量主数据的领域知识,任何不包括对创建、维护和验证主数据的过程的更改的MDM项目都可能失败。
2、如何创建主数据代码
无论您是购买工具还是决定使用自己的工具,创建主数据都有两个基本步骤:清理和标准化数据,匹配来自所有源的数据以合并重复数据。在开始清理和规范化数据之前,必须了解主数据的数据模型。作为建模过程的一部分,定义了每个属性的内容,并定义了从每个源系统到主数据模型的映射。此信息用于定义清理源数据所需的转换。
清理数据并将其转换为主数据模型与用于填充数据仓库的提取、转换和加载(ETL)过程非常相似。如果您已经定义了ETL工具和转换,那么根据主数据的需要修改这些工具可能会更容易。以下是一些典型的数据清理函数:
(1)规范化数据格式。让所有的电话号码看起来都一样,将地址(等等)转换成一种通用格式。
(2)替换丢失的值。插入默认值,从地址中查找邮政编码,查找街道号码。
(3)标准化计量单位。将所有测量值转换为公制,将价格转换为通用货币,将零件号更改为行业标准。
(4)映射属性。分析联系人姓名字段中的名字和姓氏,将名字和姓氏移到姓名字段。
大多数工具都会尽可能地清理数据,并将其余的放入错误表中进行手工处理。根据匹配工具的工作方式,清理后的数据将放入主表或一系列临时表中。在清理每个源时,应检查输出以确保清理过程正常工作。
匹配主数据记录以消除重复是创建主数据中最困难也是最重要的一步。错误的匹配实际上会丢失数据(例如,两个Acme公司合并为一个),而丢失的匹配会降低维护公共列表的价值。MDM工具的匹配精度是最重要的采购标准之一。有些数据的匹配很容易做,如果您的所有客户都有社会保险号码,或者您的所有产品都使用通用的编号方案,则数据库联接将找到大多数匹配项。然而,这在现实世界中几乎不可能发生,所以匹配算法通常非常复杂和繁琐。客户可以在姓名、婚前姓名、昵称、地址、电话号码、信用卡号码等方面进行匹配,而产品则在名称、描述、零件号、规格和价格方面进行匹配。属性匹配越多,匹配越紧密,MDM系统在匹配中的可信度就越高。每次匹配都会计算置信因子,如果超过阈值,则记录匹配。阈值通常根据错误匹配的结果进行调整。例如,您可以指定,如果置信度高于95%,则记录将自动合并,如果置信度介于80%和95%之间,则数据管理员应在合并之前批准匹配。
大多数合并工具都会将一组输入合并到主列表中,因此最好的过程是使用质量最好的数据开始列表,然后一次合并一个其他源。如果你有很多数据和很多问题,这个过程可能需要很长时间。您可能希望从合并后中获得最大收益的数据开始;使用该数据运行一个试验项目,以确保您的流程正常工作,并看到您期望的业务收益;然后在时间和资源允许的情况下,开始添加其他源。这种方法意味着你的项目将花费更长的时间,可能花费更多,但风险更低。这种方法还允许您从一些组织开始,并在项目证明成功时添加更多内容,而不是试图从一开始就让每个人都参与进来。
将源数据合并到主列表时要考虑的另一个因素是隐私。当客户成为customer master的一部分时,其信息可能对任何可以访问customer master的应用程序可见。如果客户数据是在将其使用限制为特定应用程序的隐私策略下获取的,则可能无法将其合并到客户主数据中。您可能想在MDM计划团队中添加一名律师。
此时,如果您的目标是生成主数据列表,那么就完成了。打印出来或烧录成CD,然后继续。如果希望在添加和更改数据时保持主数据的最新状态,则必须开发基础结构和流程来管理主数据。
3、如何维护主数据代码
管理和使用主数据有许多不同的工具和技术。我们将在这里介绍三种更常见的情况:
单拷贝方法:在这种方法中只有一个主数据的主拷贝。所有的添加和更改都是直接对主数据进行的。所有使用主数据的应用程序都将重写以使用新数据而不是当前数据。这种方法保证了主数据的一致性,但在大多数情况下并不实用。修改所有应用程序以使用具有不同架构和不同数据的新数据源,至少是非常昂贵的;如果购买了某些应用程序,甚至可能是不可能的。
多拷贝,单次维护:主数据是在数据的单次主副本中添加或更改的,但更改会发送到本地存储副本的源系统。每个应用程序都可以更新不属于主数据的部分数据,但它们不能更改或添加主数据。例如,库存系统可以更改零件的数量和位置,但不能添加新零件,也不能更改产品主数据中包含的属性。这将减少所需的应用程序更改的数量,但应用程序将至少必须禁用添加或更新主数据的功能。
连续合并:在这种方法中允许应用程序更改其主数据的副本。对源数据所做的更改将发送到代码库,并在其中合并到代码库列表中。对代码的更改随后发送到源系统并应用于本地副本。这种方法只需要对源系统进行少量更改;如果需要,可以在数据库中处理更改发送,因此不会更改任何应用程序代码。从表面上看,这似乎是理想的解决方案。应用程序更改最小化,无需再培训。但是这种方法确实有几个问题:
(1)更新中可能的冲突很难调和。如果两个源系统将客户地址更改为不同的值,会发生什么情况?MDM系统无法决定要保留哪一个,因此需要数据管理员的干预;同时,客户有两个不同的地址。必须通过创建数据治理规则和标准操作过程来解决此问题,以确保减少或消除更新冲突。
(2)添加的内容必须重新合并。添加客户后,有可能另一个系统已经添加了该客户。为了处理这种情况,所有数据添加都必须再次执行匹配过程,以防止代码库中出现新的重复项。
(3)保持一致的计量单位更加困难。如果产品的重量从磅换算成千克,然后再换算成磅,四舍五入可能改变原始重量。如果用户输入了一个值,然后几秒钟后看到它发生了变化,他可能会感到不安。
一般来说,所有这些事情都是可以计划和处理的,这使得关键用户的易用性更强,但代价是维护更复杂的基础设施和数据管理员的更多工作。这也许是一个可以接受的权衡的过程,但这是一个应该提早有意识地做出的权衡。
4、版本控制和审计
无论您如何管理主数据,了解数据是如何到达当前状态的都很重要。例如,如果一个客户记录是从两个不同的合并记录合并而来的,那么您可能需要知道原始记录是什么样子的,以防数据管理员错误地确定这些记录是合并的,并且实际上应该是两个不同的客户。版本管理应该包括一个简单的界面,用于显示版本并将所有或部分更改还原到以前的版本。源代码管理系统使用的版本的正常分支和更改的分组对于维护不同的派生更改和将更改的组还原到以前的分支也非常有用。
数据管理和法规遵从性要求通常包括一种确定每个更改是谁做的以及何时做的方法。为了支持这些需求,MDM系统应该包括一个用于审核主数据更改的工具。除了保留审计日志之外,MDM系统还应该包含一个简单的方法来查找您正在寻找的特定更改。MDM系统每天可以审计数千个更改,因此审计日志的搜索和报告功能非常重要。
5、层级管理
除了主数据本身之外,MDM系统还必须维护数据层次结构,例如产品的物料清单、销售区域结构、客户的组织结构等等。MDM系统捕获这些层次结构很重要,但MDM系统能够独立于底层系统修改层次结构也很有用。例如,当员工移动到不同的成本中心时,可能会对差旅和费用、工资单、时间报告、报告结构和绩效管理产生影响。如果MDM系统管理层次结构,那么在一个地方对层次结构的更改可以将更改分发到所有底层系统。可能还有一些原因需要在MDM系统中维护源系统中不存在的层次结构。例如,收入和支出可能需要汇总到任何单一来源系统中都不存在的领域或组织结构中。规划和预测还可能需要临时层次结构来计算拟议组织更改的“假设”数字。在许多情况下,还需要历史层次结构来将财务信息汇总到过去存在的结构中,而不是当前的结构中。因此,功能强大、灵活的层次结构管理特性是MDM系统的重要组成部分。