终于有人讲清楚:主数据、元数据、参考数据到底是什么了! 很多企业的数据问题看起来是报表对不上实际上往往从更前面就乱了。同一个客户在CRM里一个名字在ERP里一个编码到了财务系统又变成另一套说法。人知道它们是同一个客户系统不知道。于是销售额重复计算、客户利润对不上、库存和订单也越查越乱。问题的根源通常绕不开三类数据主数据、元数据、参考数据。简单来说主数据管“是谁、是什么”元数据管“数据怎么理解、从哪里来”参考数据管“按照什么标准分类和取值”。最近我在用FineDataLink梳理企业数据链路时对这三者的关系感受更明显。它可以把分散在CRM、ERP、WMS、财务系统中的数据统一接入再按照既定规则完成清洗、映射、调度和分发。规则由企业来定FineDataLink负责让规则稳定跑起来。感兴趣可以试用一下https://s.fanruan.com/tx4dw复制到浏览器下面就把主数据、元数据、参考数据一次讲清。一、先用三个问题快速区分三类数据遇到一项数据不知道它属于哪一类可以先问三个问题。1、它是不是企业反复使用的核心业务对象比如客户、供应商、商品、物料、员工、组织、设备、门店。如果是它大概率属于主数据。2、它是不是在描述另一项数据比如字段名称、字段类型、数据来源、更新时间、指标口径、负责人、加工关系。如果是它大概率属于元数据。3、它是不是一套用于分类、判断或约束的标准值比如国家代码、币种代码、订单状态、客户等级、计量单位、行业分类。如果是它大概率属于参考数据。可以先记住一句话主数据是业务对象元数据是数据说明书参考数据是标准词典。二、主数据企业反复使用的核心业务对象主数据是企业在多个系统和业务流程中反复使用的核心实体数据。常见的主数据包括客户、供应商、商品、物料、组织、员工、设备、门店和账户。比如一张销售订单中包含订单编号客户商品销售人员订单金额下单时间。订单金额和下单时间是这笔交易产生的数据。而客户、商品、销售人员会被大量订单反复引用它们就是典型的主数据。主数据通常有4个特点1、跨系统使用客户信息不仅存在于CRM。它还会出现在ERP、财务、合同、客服和仓储系统中。商品数据也一样。销售要用采购要用生产、库存和物流同样要用。2、相对稳定订单每天都在新增交易状态不断变化。但客户、供应商和商品不会每分钟创建一次。它们也会发生变化只是变化频率通常低于交易数据。3、被大量业务引用一条客户主数据可能关联几千张订单、合同和发票。一条物料主数据可能贯穿采购、生产、库存和成本核算全过程。4、必须具有唯一身份同一个客户最好只有一个统一编码。同一个物料也应该只有一个标准物料号。否则一个对象被系统识别成多个对象后面的销售额、采购额、库存量和利润都会出现重复或遗漏。主数据治理的核心不只是统一名称而是确认“同一个对象就是同一个对象”。三、主数据为什么会越管越乱主数据问题通常不是突然出现的。它是在企业不断增加系统、部门和业务的过程中一点点积累起来的。以客户数据为例。销售在CRM里新建一次。财务开票时又建一次。ERP上线后再导入一份。电商平台按照店铺账号识别客户。售后系统则按照手机号识别客户。时间一长同一个客户可能有多个名称、多个编码。有些记录名称相同实际却不是同一家企业。有些记录名称不同实际反而属于同一客户。企业想统计客户销售额时就容易出现销售部门算出来是1000万元。财务部门算出来是920万元。经营分析又算出1050万元。表面看是报表口径不一致。实际上问题可能更早就发生了客户主数据根本没有统一。商品和物料也一样。销售系统按照商品编码管理。生产系统按照物料编码管理。仓库按照SKU管理。财务则按照存货编码核算。如果这些编码没有建立映射关系企业就很难回答这个商品到底卖了多少它对应消耗了哪些物料目前还有多少库存最终贡献了多少利润所以主数据治理通常要经过识别、去重、匹配、合并、编码、补全、审核、发布和持续维护。真正落地时第一步往往不是急着制定新编码而是先把分散的数据集中起来。这时可以利用FineDataLink把CRM、ERP、WMS、财务系统以及文件中的客户、供应商和商品数据统一接入再通过数据开发任务进行字段统一名称清洗空值处理格式转换编码映射数据关联重复记录识别。只有先把不同系统中的“客户”放到一起企业才有机会判断哪些记录属于同一个客户。但这里要特别注意工具可以执行规则不能替企业决定规则。哪个系统是客户数据的权威来源两条客户记录是否应该合并客户编码应该按照什么规则生成这些仍然需要业务、财务和数据部门共同确认。FineDataLink解决的是规则确定以后如何让数据接入、清洗和转换自动跑起来。四、元数据不是业务数据而是“关于数据的数据”元数据经常被解释为描述数据的数据。听起来有点绕但举个例子就明白了。一张销售订单表里记录客户A购买了10件商品订单金额为5万元下单时间为7月10日。这些属于业务数据。而下面这些信息则属于元数据这张表叫什么存在哪个数据库多久更新一次订单金额是什么字段类型金额是否含税销售额按照什么公式计算数据来自哪个系统经过了哪些清洗步骤由谁负责维护元数据不直接描述客户买了什么。它描述的是这些数据应该怎么理解、怎么找到、怎么使用。元数据通常可以分成三类1、技术元数据技术元数据主要描述数据在技术系统中的形态。例如数据库名称表名称字段名称字段类型字段长度主键和外键存储位置上下游依赖关系。技术人员通过它判断数据存在哪里应该查询哪张表修改一个字段会影响哪些任务和报表2、业务元数据业务元数据主要解释数据在业务上的含义。例如指标名称业务定义计算公式统计范围数据负责人适用部门更新频率。比如“销售额”这个指标至少要说清楚按下单时间还是支付时间统计是否含税是否扣除退款取消订单算不算跨月退款怎么处理没有业务元数据同一个指标就可能出现多个版本。销售部门有一个销售额。财务部门有一个销售额。老板驾驶舱里又出现第三个销售额。大家使用同一个名字算的却不是同一件事。3、运行元数据运行元数据主要记录数据任务运行过程中发生了什么。例如任务什么时候开始什么时候结束是否执行成功处理了多少条数据出现了多少异常记录哪个节点执行失败数据最后更新到了几点这类信息非常重要。因为企业经常遇到一种情况报表看起来没有报错数字也正常展示但实际使用的还是昨天的数据。这时就要继续判断源系统今天有没有产生数据同步任务是否完成清洗任务有没有失败下游汇总任务是否按时执行FineDataLink在数据同步和开发过程中可以通过任务调度、依赖管理和运行监控帮助数据人员查看整条链路的执行情况。它不等于完整的企业级元数据治理平台但在数据链路执行层可以帮助企业管理非常关键的任务依赖、更新时间、执行状态和异常信息。所以元数据不仅告诉我们“数据是什么意思”。它还要告诉我们数据从哪里来经过了什么处理现在是否正常。五、参考数据统一分类和取值的标准词典参考数据是用于分类、描述和约束其他数据的一组标准值。它通常以代码表、字典表或枚举值的形式存在。常见的参考数据包括国家和地区代码币种代码计量单位订单状态客户等级行业分类付款方式证件类型。比如不同系统对订单状态的表达可能完全不同。CRM里是1待处理2处理中3已完成。ERP里是A新建B已审核C已关闭。电商平台则是WAIT_PAYWAIT_SENDFINISHED。这些值不是客户、商品这样的具体业务对象。它们是一组用于描述订单状态的分类标准所以属于参考数据。参考数据治理要解决的是代码是否统一不同系统如何映射哪些代码已经停用新增代码由谁审批标准变化后怎么同步给下游系统再比如币种。有的系统写“人民币”。有的写“RMB”。有的写“CNY”。业务人员都能看懂但系统汇总时可能把它们识别成三种不同币种。这时就需要建立统一标准标准代码CNY中文名称人民币英文名称Chinese Yuan历史编码RMB启用时间适用范围。标准确定以后还要解决一个很现实的问题不同系统里的旧代码怎么转换成统一代码这时可以在FineDataLink的数据开发流程中建立转换和映射规则。比如RMB统一转换成CNY01、A、WAIT_PAY统一映射为“待付款”VIP、A类、重点客户统一映射为“重点客户”。源系统可以暂时保留原来的编码。数据进入数仓或分析平台时再统一转换成企业标准值。这样不需要一次性改造所有历史系统也能保证后续分析使用同一套口径。如果参考数据发生变化还可以通过定时任务或数据服务将新的标准数据同步给下游系统。参考数据看起来只是一张小小的代码表却决定了不同系统能不能使用同一种语言。六、主数据和参考数据最容易混在哪里主数据和参考数据都相对稳定也都会被大量业务数据引用所以最容易混淆。判断方法其实很简单主数据描述具体业务对象参考数据描述这些对象所属的类别、状态和规则。例如客户A是主数据客户等级“战略客户”是参考数据。商品X是主数据商品类别“办公设备”是参考数据。供应商B是主数据供应商状态“合格”是参考数据。设备C是主数据设备类型“数控机床”是参考数据。员工D是主数据员工状态“在职”是参考数据。再看一个完整场景。“浙江省杭州市的某个客户”中客户本身属于主数据浙江省、杭州市等行政区划代码属于参考数据客户表名称、字段定义和数据来源属于元数据。三类数据会同时出现在一项业务里但承担的职责不同。七、用一张销售订单看懂三者的关系假设系统里产生了一张销售订单客户华东机械有限公司商品工业设备A币种CNY客户等级重点客户订单状态已发货订单金额10万元。在这张订单中主数据包括什么华东机械有限公司工业设备A负责销售的员工负责发货的仓库订单所属的销售组织。它们是被订单引用的核心业务对象。参考数据包括什么币种CNY客户等级“重点客户”订单状态“已发货”计量单位“台”付款方式“银行转账”。它们用于分类、描述和约束订单内容。元数据包括什么订单表存在哪个数据库客户编码字段叫什么订单金额是否含税销售额怎么计算数据来自哪个系统订单数据经过了哪些加工步骤。它们负责解释整套数据。所以三者之间的关系可以概括为主数据构成业务对象参考数据提供标准分类元数据负责解释数据及其加工过程。FineDataLink在这条链路中的作用则更像一条数据流水线从不同系统接入客户和商品主数据按照参考数据完成代码转换依据既定规则进行清洗和加工通过任务调度自动执行再把标准数据交付给数仓和业务系统。八、为什么三类数据必须放在一起治理只管主数据不管元数据会出现什么客户编码虽然统一了但业务不知道应该使用哪个字段。商品记录虽然合并了却说不清数据来自哪个系统。指标出现异常也无法追溯加工过程。只管元数据不管主数据呢表、字段和血缘关系登记得很清楚。但同一个客户依然有多个编码。数据链路虽然能追溯追到的却是一堆重复和错误的数据。只管参考数据同样不够。客户等级代码统一了但同一个客户仍然存在三条记录。所以三类数据解决的是三个不同层面的问题主数据解决对象统一参考数据解决规则统一元数据解决认知和过程统一。它们共同决定企业的数据是否能够做到找得到看得懂对得上追得回用得准。九、三类数据治理可以按照这6步落地第一步盘点核心对象先梳理企业到底有哪些核心主数据。常见的包括客户、供应商、商品、物料、组织、员工、设备和门店。同时明确这些数据分别存在于哪些系统中。第二步明确权威来源每一类主数据都要回答由哪个部门负责哪个系统可以创建哪个系统是权威来源谁有权审核和修改不能让所有系统都随意新增同一类数据。否则重复数据会不断产生。第三步统一标准明确编码规则字段名称必填内容命名规范去重逻辑合并规则状态规则参考代码。标准不清楚工具跑得再快也没有意义。错误的数据自动化流转只会让错误扩散得更快。第四步统一接入和清洗利用FineDataLink等数据集成工具将分散在数据库、系统和文件中的数据统一接入。再按照已经确定的规则完成字段转换名称清洗空值处理编码映射数据关联重复记录识别。一开始不必铺得太大。可以优先治理问题最多、影响最大的三类数据客户、供应商和商品。第五步形成标准记录并分发完成清洗和审核后形成统一的标准数据。再将这些数据同步给数仓、分析平台和业务系统。避免每个部门继续维护自己的版本。比如标准客户数据形成后可以同步给CRMERP财务系统合同系统数据仓库。这样企业各系统看到的才是同一个客户。第六步持续监控和运营数据治理不是做完一次就结束。新客户会不断增加。商品信息会持续调整。供应商会被停用。参考代码也会发生变化。因此需要持续检查客户编码是否重复统一社会信用代码是否缺失商品分类是否为空参考代码是否超出允许范围停用客户是否仍然产生新订单数据任务是否按时执行标准数据是否已经同步到下游数据治理不是一次数据清洗而是一套长期运营机制。FineDataLink在这里的价值就是把数据接入、加工、调度和分发形成稳定流程。过去需要每天手动导文件、合并表格、执行SQL、检查结果。现在可以将这些动作配置成自动任务什么时候同步先执行哪个任务失败后是否重试结果要交付到哪个系统整条链路都可以被持续管理。十、三类数据治理最容易踩的5个坑1、一上来就给所有数据重新编码企业还没盘点清楚现有数据就急着设计一套全新编码。结果旧系统无法改新系统又不接受最后反而多出一套编码。主数据治理首先要识别和映射再判断哪些编码需要保留、替换或停用。2、只做一次性清洗找团队集中清洗三个月数据看起来终于干净了。半年后重复客户和错误商品又全部回来。因为入口没有控制规则也没有持续运行。一次清洗解决的是历史问题持续治理解决的才是未来问题。3、只让IT部门负责主数据标准、指标口径和参考代码本质上都来自业务。IT可以建设系统、执行规则却不能单独判断哪个客户应该合并、哪个订单状态最合理。数据治理必须有业务参与。4、把工具当成治理本身工具能够同步、转换、调度和监控数据。但它不能替企业划分责任、定义标准和审批规则。工具是治理规则的执行载体不是治理规则本身。5、只管数据进入不管数据输出标准数据清洗完成后只留在数据平台里。业务系统仍然使用自己的旧数据。结果是分析端统一了业务源头却继续制造混乱。治理后的标准数据必须能够重新分发和共享。十一、写在最后主数据、元数据和参考数据看起来是三个技术概念。背后对应的却是三个非常实际的管理问题。主数据回答企业到底在管理哪些核心对象元数据回答这些数据是什么意思、从哪里来、经过了什么加工参考数据回答这些数据按照什么标准分类和取值客户、供应商、商品属于主数据。字段定义、指标口径、数据来源和加工关系属于元数据。币种、地区、状态、等级和计量单位属于参考数据。它们不是互相替代的关系。而是共同构成企业数据治理的基础。没有统一主数据同一个客户会被计算很多次。没有统一参考数据同一种状态会出现多种表达。没有完整元数据数据出了问题也不知道应该从哪里排查。FineDataLink这类数据集成和数据开发工具解决的是治理规则确定以后的落地问题把分散数据接进来把清洗转换流程跑起来把标准数据同步出去把整条任务链路监控起来。但工具只是手段。工具决定数据能不能顺畅流动治理规则决定流动的到底是不是正确数据。真正成熟的数据治理不是接了多少系统也不是建了多少张表。而是能够做到主数据统一对象参考数据统一规则元数据统一认知FineDataLink让标准数据在企业各系统之间稳定流转。