一文看懂参考数据
一文看懂参考数据
参考数据是企业数据管理中一个重要的概念,它用于描述或分类其他数据,或者将数据与组织外部的信息联系起来。本文将详细介绍参考数据的定义、特征、分类以及其管理方法,帮助读者全面理解参考数据在企业数据管理中的重要作用。
奇泽姆(Malcolm Chisholm)提出了一种六层的数据分类法,包括元数据、参考数据、企业结构数据、交易结构数据、交易活动数据和交易审计数据。注意这里是没有主数据的,因为在 Chisholm 的分类中,“企业结构数据”(Enterprise Structure Data)承担了与主数据类似的功能:描述企业中相对稳定的实体,例如客户、产品、供应商、地点等。这些数据与业务流程密切相关,通常是企业内各系统共享的核心信息。
企业结构数据的定义:企业中相对稳定的、支持交易活动的数据,与主数据的范围高度重合。
或者说,在这种分类法中,他将主数据定义为参考数据、企业结构数据和交易结构数据的聚合。但是,参考数据还具有很多区别于其他主数据(如企业结构数据和交易结构数据)的特征。参考数据不易变化,它的数据集通常会比交易数据集或主数据集小、复杂程度低,拥有的列和行也更少。参考数据管理不包括实体解析的挑战。
说白了,主数据涉及业务实体,譬如重要客户搬迁了,客户地址必须随即更改,并统一地址的描述,这是主数据干的事儿。地址搬到哪都逃不离中国,国家代码都是CN,这不会变更的标准化信息,是参考数据干的事儿。又譬如状态信息,订单的状态左不过处理、发货、送达、退回几种可能,是可以列示的有限数据,订单状态信息不在业务主流程,只是业务实体的一个属性。
参考数据是指可用于描述或分类其他数据,或者将数据与组织外部的信息联系起来的任何数据。参考数据常用的存储技术包括:
1)关系数据库中的代码表。
通过外键与其他表链接,以保持数据库管理系统中的参照完整性功能。
使用场景:数据库层级,支持简单的参考数据存储。
案例:假如现在有一个订单系统,订单表的status_code设为外键,链接订单状态代码表
作用:
- 数据一致性:所有订单的状态值都必须来自这张代码表,通过外键约束防止非法状态值的输入。
- 易于扩展:如果需要新增或调整状态,只需修改代码表,无需更改依赖状态的业务逻辑。
- 清晰的描述:提供每个状态代码的文字说明,方便开发和维护人员理解状态含义。
2)参考数据管理系统。用于维护业务实体,允许,未来状态、弃用值以及术语映射规则,以支持更广泛的应用和数据整合使用。
适用场景:大型企业,参考数据复杂且需要统一管理。
案例:
某全球性企业需要对货币进行管理:
- 参考数据管理系统存储货币信息:
- 当前有效货币:USD(美元),CNY(人民币),EUR(欧元)。
- 弃用值:FRF(法国法郎)。
- 未来状态:某新货币将于指定日期生效。
- 映射规则:支持将某些旧货币代码(如 DEM,德国马克)映射到新货币代码(如 EUR)。
这种系统支持通过 API 或数据导出功能,与多个业务系统同步最新的参考数据。
3)用特定于对象属性的元数据指定允许值,重点在于应用程序的调用接口或用户界面访问。
适用场景:应用程序,前端和接口需要灵活性验证的场景,动态验证输入,通过调用接口或界面验证。
案例:
在一个 REST API 中定义了允许的客户类型: - 客户类型元数据:
用户界面中的校验规则: 当用户通过前端填写客户信息时,界面会限制输入: - 正确值:
Regular
,
VIP
,
Corporate - 错误值:
Student
(提示:值无效)
参考数据管理需要控制和维护定义的域值、定义以及域值内和域值间的关系。参考数据管理的目标是确保不同功能之间引用的值是一致的、最新的,并且组织内部均可以访问这些数据。与其他数据一样,参考数据也需要元数据。参考数据的一个重要元数据属性就包括其来源,如行业标准参考数据的管理机构。
参考数据的结构:
1)列表。
最简单的参考数据是由代码值和代码描述组成的列表。代码值是主标识符,是在其他上下文中出现的短格式参考值。列表就是解释,每个代码值代表了什么。
以DAMA中给出的列表为例:
2)交叉参考数据列表。
不同的应用程序可以使用不同的代码集表示相同的概念。这些代码集可能有不同的粒度,或者具有相同的粒度、不同的值。交叉引用数据集可以在代码值之间转换。这个表是对同一个东西在不同系统中的代码,进行比对。
如果不同系统的值不一样,不应该设置统一的标准嘛,为啥还要搞交叉参考数据列表?
1. 历史遗留问题
- 不同系统通常在不同时间由不同团队开发,可能采用了各自的标准。如果这些系统已经运行多年,数据模型和业务逻辑根深蒂固,直接修改系统标准会导致巨大的成本和风险。
- 例如,一个老旧的ERP系统可能使用非标准化的货币代码,而一个新开发的CRM系统则采用ISO标准货币代码。修改旧系统的代码可能会影响现有业务流程。
2. 系统间的独立性 - 在一些场景下,系统设计时被赋予了独立性,允许每个系统根据自身需求定义适合的标准。
- 例如,一个财务系统可能需要更详细的货币分类(如分区或类型),而一个电商平台只需要使用简单的货币代码。
3. 数据整合的现实需求 - 大型企业通常会合并或收购其他企业。这些企业的系统可能已经定义了自己的标准。在整合时,替换所有系统的标准是不现实的,交叉参考数据列表是一种更实际的解决方案。
- 例如:银行收购了一个区域性银行,两者的客户数据编码规则不同,短期内无法完全统一,交叉参考数据列表可以帮助实现数据对接。
3)分类法。
分类参考数据体系根据不同级别的差异性获取信息。
下面是DAMA对行业参考数据的描述:
行业参考数据(Industry Reference Data)是一个宽泛的术语,用于描述由行业协会或政府机构而不是由某个组织创建和维护的数据集,以便为编码重要的概念提供一个通用的标准。这种编码引出了一种常见的理解数据的方式,也是数据共享和互操作性的先决条件。
例如,国际疾病分类代码(ICD)提供了一种常见的方法对健康状况(诊断)和治疗(程序)进行分类,从而在卫生保健和治疗结果方面提供了统一的说明方法。如果每个医生和医院都为疾病制定自己的代码集,那么了解疾病的趋势和模式几乎是不可能的事情。
行业参考数据是由使用这些数据的组织的外部组织生成和维护的,但这些行业参考数据需要理解组织内的事物,它可能需要提供一些对具体的数据质量管理工作(如第三方业务目录)、业务计算(如外汇汇率)或业务数据扩充(如营销数据)的支持。这些数据集的变化很大,取决于具体行业和代码集的不同。