2. 主数据概念与模型:主数据定义、主数据管理核心要素、主数据模型设计原则、与事务数据的区别

好,咱们进入第二章。这一章我打算把主数据这个概念彻底讲透。很多同学做了好几年数据工作,问起主数据是什么,能说个大概,但一到落地就含糊了。说白了,主数据就是企业里那些最核心、最基础、被多个系统反复引用的数据实体。

我当年刚接触主数据治理时,也犯过迷糊。记得有一次,我们把订单数据当主数据治理了半年,后来才发现那玩意儿是事务数据,治理思路完全不对。嗯,今天咱们就把这些坑提前填上。

2.1 主数据定义

主数据(Master Data),指的是描述企业核心业务实体的数据。这些实体通常包括:客户、产品、供应商、员工、组织、会计科目等。它们有几个共同特征:

  • 跨系统共享:CRM、ERP、SCM 都在用同一套客户数据
  • 相对稳定:不会像订单那样每分钟都在变
  • 高价值:一旦出错,下游全崩

举个例子。你在电商平台下单,订单里有商品ID、客户ID、地址ID。这些ID背后对应的商品名称、客户姓名、地址详情,就是主数据。订单本身是事务数据,但订单引用的那些“字典”就是主数据。

核心定义:主数据是企业内跨业务领域、跨系统、被重复使用的高价值核心业务实体数据。

2.2 主数据管理核心要素

主数据管理(MDM)不是买个工具就完事了。我见过太多企业,上了 MDM 平台,结果数据还是一团糟。为什么?因为忽略了管理要素。

我个人习惯把 MDM 的核心要素归纳为五个维度:

维度 说明 常见问题
数据标准 定义统一的编码规则、命名规范、格式要求 各系统自己定编码,合并时乱成一锅粥
数据质量 完整性、准确性、一致性、及时性 客户姓名有空格、手机号少一位,没人管
数据生命周期 创建、变更、归档、销毁的全流程管控 离职员工数据没人清理,越积越多
数据权限 谁可以创建、修改、删除、查看主数据 业务员自己改客户等级,乱套了
数据集成 主数据如何在各系统间分发、同步、回写 ERP改了供应商名称,OA还是旧的

这五个维度缺一不可。我曾经在一个项目中,只抓了数据标准和数据质量,忽略了生命周期和权限,结果半年后主数据仓库里堆满了僵尸数据。嗯,那教训挺深刻的。

2.3 主数据模型设计原则

模型设计是主数据治理的基石。模型设计得好,后面调度、清洗、分发都顺畅;设计得烂,后面全是补丁。

我总结了四条核心原则:

  1. 唯一性:每个主数据实体必须有全局唯一的标识符。别跟我说用“名称+类型”当主键,那玩意儿迟早会撞车。
  2. 稳定性:主数据的核心属性(如客户ID、产品编码)一旦确定,尽量不要改。改一次,下游十几个系统都要跟着改。
  3. 扩展性:模型要预留扩展字段或扩展机制。业务部门随时可能加一个新属性,你不能每次都改表结构。
  4. 可追溯性:记录每次变更的版本、时间、操作人。出了问题能回溯。

我的经验:设计主数据模型时,建议先画概念模型,再转逻辑模型,最后才落地物理模型。跳过概念模型直接建表,十有八九要返工。

举个例子,客户主数据模型。最简单的版本:

-- 客户主数据表(简化版)
CREATE TABLE md_customer (
    customer_id      VARCHAR(32)   PRIMARY KEY,  -- 全局唯一客户ID
    customer_name    VARCHAR(128)  NOT NULL,      -- 客户名称
    customer_type    VARCHAR(16),                  -- 客户类型:个人/企业
    status           VARCHAR(8)    DEFAULT 'ACTIVE', -- 状态
    source_system    VARCHAR(32),                  -- 来源系统
    created_at       TIMESTAMP     DEFAULT NOW(),
    updated_at       TIMESTAMP     DEFAULT NOW(),
    version          INT           DEFAULT 1       -- 版本号,用于追溯
);

你看,这个模型虽然简单,但唯一性、稳定性、可追溯性都照顾到了。扩展性可以通过加扩展属性表来实现。

2.4 主数据与事务数据的区别

这个区别搞不清楚,治理方向就会跑偏。我见过有人把订单明细当主数据治理,也有人把产品目录当事务数据忽略。咱们用一张表说清楚:

对比维度 主数据 事务数据
典型代表 客户、产品、供应商、组织 订单、合同、发货单、付款记录
变化频率 低(周/月级变化) 高(秒/分级变化)
数据量 小(万级到百万级) 大(千万级到亿级)
生命周期 长(年为单位) 短(月/季度归档)
治理重点 一致性、标准化、版本管理 完整性、时效性、审计追溯
调度策略 增量同步、变更捕获、定时分发 批量加载、实时流处理、分区管理

你想想看,订单数据每秒都在产生,你不可能用治理主数据那套“先审批再变更”的流程去管它。反过来,客户数据你也不能用事务数据的“批量加载、用完即弃”的思路去处理。

避坑提醒:我曾经在一个项目中,把“合同”当成了主数据来治理。合同确实跨系统引用,但它变化频繁、量大、生命周期短,本质上是事务数据。结果我们花了三个月建模型,上线第一天就被海量数据冲垮了。后来改成事务数据治理思路,才稳住。

好,咱们用一张图来总结本章的核心知识体系:

主数据概念与模型 · 知识体系 主数据治理 主数据定义 管理核心要素 模型设计原则 与事务数据的区别 跨系统共享 相对稳定 高价值 数据标准 数据质量 生命周期 数据权限 数据集成 唯一性 稳定性 扩展性 可追溯性 变化频率不同 数据量不同 治理重点不同 调度策略不同 核心逻辑 主数据治理 = 定义明确 + 管理要素完备 + 模型设计合理 + 与事务数据区分清晰

这张图把本章的四个核心模块串起来了。从定义出发,到管理要素、设计原则,再到与事务数据的区别,层层递进。后面的章节,我们会基于这个框架,深入讲任务调度引擎如何与主数据治理结合。