数据质量规则怎么定?4大类15种检查,从字段到链路一次讲清

零门槛、免安装!海量模板方案,点击即可,在线试用!

免费试用

数据质量规则怎么定?4大类15种检查,从字段到链路一次讲清

阅读人数:77预计阅读时长:7 min

数据质量管理真正难的地方,往往不是发现数据有问题,而是不知道应该检查什么,以及什么样的数据才算合格。

一张订单表,字段没有空值,主键也没有重复,为什么销售报表里的金额还是对不上?一次数据同步,任务状态显示成功,为什么目标端仍然缺少部分记录?

这些问题说明,数据质量检查不能只停留在字段层面。数据有没有缺失、取值是否合理、不同字段之间是否符合业务逻辑、跨表数据能否对应,以及数据有没有按时到达,都需要纳入检查范围。

数据质量规则,就是把这些要求转化为可执行、可判断、可追踪的检查条件。

结合常见的数据治理和数据集成场景,可以将规则归纳为四大类、15种类型:字段值规则、记录逻辑规则、关联一致性规则和数据过程规则。

一、字段值规则:字段有值,不代表数据就没问题

字段值规则是最基础的一类,主要检查字段是否缺失、是否重复,以及取值是否符合格式、范围和标准要求。但这类规则有一个容易忽略的前提:必须先理解字段的业务含义,再决定检查条件。

完整性规则:哪些字段必须有值?

订单编号为空,订单可能无法被准确识别;客户编号缺失,销售记录就可能无法归属到具体客户。完整性检查关注的不只是空值,还包括关键记录、关联信息和数据批次是否齐全。

常见的检查对象有:

  • 订单编号、交易日期等关键字段是否缺失;
  • 已发货订单是否填写发货时间;
  • 订单明细是否缺少对应的订单主记录;
  • 应当同步的业务数据是否出现记录缺口。

设计规则时,不要直接要求所有字段都非空。客户备注可以为空,但订单编号通常不能缺失;支付时间在待支付状态下可以为空,订单进入已支付状态后则应当有值。

还要注意,数据库中的 NULL 与空字符串并不完全相同。有些系统还会用"无""/""N/A"等字符串表示没有填写。如果规则只检查 NULL,实际的空值问题就可能被漏掉。

在 FineDataLink 中,可以结合数据清洗和数据检测,对关键字段的空值进行统一处理与检查,并根据业务要求配置后续的异常处理流程。

唯一性规则:重复记录一定是错误吗?

唯一性规则用于检查单个字段或字段组合是否重复。

客户主表中的客户编号通常应当唯一,但销售明细表中的客户编号完全可能重复,因为同一个客户可以产生多笔订单。判断重复是否异常,关键在于数据表的业务粒度是什么。

假设门店每天只能有一条销售日报,那么真正的唯一条件应该是:门店编号 + 统计日期。如果只检查门店编号,就会把同一家门店不同日期的正常记录误判为重复。

重复数据还有不同来源:可能是上游系统本身允许重复,也可能是多个系统的数据合并后没有去重,还可能是增量任务重跑导致同一条记录被重复写入。

因此,规则设计不能止于发现重复。还需要明确重复出现后应该报错、跳过还是覆盖,并检查数据同步逻辑是否存在问题。

格式规则:数据能识别,不等于格式已经统一

多系统集成时,格式不一致是很常见的问题。同一个日期,在不同系统中可能保存为 2026-10-21、20261021 或 2026/10/21。单独看,每种形式都可能可以识别;但如果直接合并使用,就可能影响日期转换、关联查询和统计分析。

格式规则主要检查:

  • 日期、手机号、邮箱等字段是否符合约定格式;
  • 编码长度和字符组成是否符合规范;
  • 字段类型是否与目标端要求一致。

FineDataLink 可以在数据处理过程中完成字段类型映射和格式转换,将不同来源的数据统一到目标端要求的形式,减少数据进入目标库后再集中清洗的工作。

不过,格式正确不代表内容一定正确。一个日期可以符合标准格式,却不一定符合业务时间范围。因此,格式检查通常还需要与范围规则、时间顺序规则配合。

范围规则:异常值应该拦截,还是先告警?

金额不能随意出现负值,折扣率需要符合业务约束,库存数量也要满足企业规定的取值范围。这些都可以通过范围规则检查。

设计时,需要区分两种情况。

硬边界是业务明确不允许突破的限制。比如某业务不允许负库存,那么库存小于零就应当触发严重异常,并根据业务要求阻断后续处理。

软边界则是统计上不寻常、但业务上仍然可能发生的情况。一笔采购金额远高于历史平均水平,可能是录入错误,也可能是正常的大额采购。此时更适合触发告警,交由业务人员核查。

阈值也不能完全凭经验设置。可以结合业务制度、历史数据分布和实际容忍范围确定,并根据运行情况持续调整。

枚举值规则:业务状态变了,规则也要跟着变

订单状态、客户等级、单据类型等字段,通常只能取预先约定的有限值。

订单状态可能包括待支付、已支付、已发货、已完成和已取消。如果业务系统新增了"部分退款"状态,而质量规则没有同步更新,那么新状态就可能被持续标记为异常。

这类规则看起来简单,长期维护却容易被忽略。更稳妥的做法是尽量让枚举值规则与业务字典表、标准定义保持联动,并建立规则更新机制。规则不能只在项目上线时配置一次,还要跟得上业务变化。

字段规则梳理完成后,还要考虑另一个实际问题:同一类检查往往会出现在很多张表中。如果每张表都单独配置空值处理、格式转换和检查条件,规则越积越多,后续维护也会越来越麻烦。

在这种情况下,可以借助 FineDataLink 5.0 的全局清洗规则和数据检测能力,将适合复用的处理逻辑集中管理,再根据不同表的业务要求补充个性化检查。这样既能减少重复配置,也有利于统一质量标准。

二、记录逻辑规则:把字段放在一起,检查业务是否说得通

有些数据单独看没有问题,放在一条业务记录中却出现了矛盾。订单金额是正数,商品数量也是正数,单价格式正确,但金额与数量、单价和折扣之间对不上。单个字段检查发现不了这类问题,需要进一步检查字段之间的逻辑关系。

数值关系规则:相关数字能不能相互验证?

数值关系规则主要检查多个字段之间的计算关系是否符合约定。

在订单数据中,可以核对商品数量、单价、折扣和订单金额之间的关系;在库存数据中,可以检查期初库存、入库数量、出库数量与期末库存是否相符;财务数据则可以核对应收金额、已收金额和应收余额。

假设一笔订单包含10件商品,单价为100元,折扣后金额为900元。如果系统记录的订单金额却是1,000元,就需要确认折扣是否正确应用,或者订单金额是否采用了不同的计算口径。

设计这类规则时,税费、运费、折扣和舍入误差都需要提前考虑。否则,规则本身就可能制造大量误报。

条件依赖规则:满足什么条件,哪些字段就必须存在?

这类规则关注字段之间的条件关系,重点不是某个字段始终不能为空,而是当业务进入特定状态时,相关字段是否满足要求。

比如,待支付订单没有支付时间是正常的;但订单已经标记为已支付,却没有支付时间,就需要检查。类似的情况还包括:

  • 已发货订单必须有发货时间;
  • 已完成退款的记录必须有退款完成时间;
  • 员工状态为离职时,需要按照业务要求填写离职日期。

如果直接对支付时间配置全局非空检查,大量正常的待支付订单也会被误判。因此,这类规则需要把业务状态与字段要求组合起来,而不是只检查单个字段。

时间顺序规则:业务事件的先后关系是否合理?

订单创建时间晚于支付时间,发货时间早于订单创建时间,合同生效时间早于签订时间——这些记录都值得进一步核查。时间顺序规则适用于订单、合同、物流、人事等具有明确业务流程的数据。

但时间顺序不一定在所有场景下都是绝对约束。历史数据补录、特殊合同安排或业务系统之间的时钟偏差,都可能造成表面上的时间异常。

因此,设计规则前应先确认业务流程和允许的例外,再决定哪些情况直接拦截、哪些情况只做提示。

业务约束规则:技术上允许的数据,业务上未必允许

业务约束规则比普通字段校验更进一步,检查数据是否违反企业的实际业务制度。

例如,合同累计付款金额不能超过合同约定金额;退款金额不能超过原始订单可退款金额;已经关闭的订单不能继续执行正常发货流程。这些约束通常不能仅凭数据库表结构推导出来,需要业务部门参与定义。

实际工作中,可以从历史异常入手:过去出现过哪些违规付款、错误退款或状态冲突?哪些问题反复发生?其中哪些可以转化为自动检查规则?把真实发生过的问题沉淀为规则,往往比一开始就追求覆盖所有业务情况更有效。

记录逻辑规则通常需要与数据加工过程结合。如果检查分散在不同脚本中,规则修改后容易出现部分任务已经更新、部分任务仍沿用旧逻辑的情况。

FineDataLink 5.0 可以将数据处理任务与质量检测任务结合起来,在相关数据加工完成后执行检查,并通过任务调度组织上下游依赖。对于需要先校验、再汇总或发布的数据,可以按照业务要求安排执行顺序,减少未经检查的数据直接进入下游分析的情况。

三、关联一致性规则:一张表没错,不代表整个数据链路没错

当数据从多个业务系统汇集到数据仓库或分析平台时,质量问题往往不再局限于单张表。客户编号在订单表里有值,却无法关联到客户主表;明细表看起来正常,汇总后的销售额却与财务报表不一致。这些问题需要从表与表、系统与系统之间的关系入手。

引用完整性规则:关联对象是否真实存在?

销售订单中的客户编号,应该能在客户主表中找到对应记录;订单明细中的商品编码,也应该能关联到有效的商品信息。

如果订单表中出现客户编号 C10086,但客户主表中找不到这个编号,那么问题可能出在客户主数据维护、数据同步顺序或编码映射上。

不能只因为关联失败,就直接删除异常记录。应当先判断是源系统没有对应对象,还是上游数据尚未同步到位,再根据业务要求决定补齐、修正或隔离处理。

汇总一致性规则:明细汇总之后,数字能否对上?

这类规则在数据仓库和财务对账中尤其重要。

假设某门店的销售明细汇总后为12万元,而日销售汇总表记录为11.5万元。差异可能来自明细遗漏、汇总任务执行异常,也可能是退款处理或统计日期的定义不同。

因此,核对之前必须统一统计范围和业务口径。明细是否包含退款、统计的是下单金额还是确认收入、采用哪个业务日期,都需要提前明确。

数据量较大时,也不必每次都对全部历史数据进行高频扫描。可以对新增数据进行日常检查,再安排周期性的全量核对,在检测深度和执行成本之间取得平衡。

跨系统一致性规则:为什么同一个指标,在不同系统里有不同结果?

这类问题在企业里并不少见。销售部门统计本月销售额为1,000万元,财务部门得到的收入却是980万元。两个数字未必有一个是错的:销售额和确认收入可能本来就采用不同口径。反过来,如果双方口径已经统一,差异就可能来自数据遗漏、状态未同步或处理逻辑不一致。

跨系统一致性检查可以覆盖:

  • 客户、产品和组织编码的映射关系;
  • 业务系统与分析平台的订单数量和金额;
  • ERP 与财务系统中的采购金额或应付金额;
  • 不同系统对同一业务对象的状态记录。

FineDataLink 5.0 可以承担异构数据源接入、字段映射、数据同步和处理链路中的质量校验等工作,将已确认的业务规则落实到数据流转过程中。

但工具不能替企业决定销售额是否包含退货、收入应该按照哪个日期统计等问题。这些口径仍然需要业务、财务和数据团队共同确认。

跨表或跨系统检查发现异常后,下一步往往是定位问题从哪里开始产生。只知道两张表的数据对不上,还不足以判断应该修改哪一端。

对于已经建立的数据链路,可以结合 FineDataLink 5.0 的血缘分析查看表与任务之间的上下游依赖,再通过库表查询核查异常记录,逐步判断问题来自源端数据、同步过程还是下游加工。这样,质量检查就不只是发现差异,还能进一步支持问题追溯。

四、数据过程规则:数据有没有按要求到达、处理和更新?

前三类规则主要关注数据内容及其关系。还有一些问题发生在数据流转过程中:任务显示成功,但数据量明显减少;数据已经到达,却比业务要求晚了几个小时;增量任务恢复后,部分记录重复写入或遗漏。这类问题需要把数据质量检查延伸到任务运行、批次管理和更新时间。

数据量规则:本次到达的数据是否符合预期?

数据量规则可以检查源端与目标端的记录数、数据分区是否齐全,以及数据规模是否出现异常变化。每天应该同步各门店的销售记录,如果某个门店的数据量突然降为零,或者目标端少了某一天的分区,就值得进一步排查。

这里有两个需要注意的地方。

一是不要只设置固定数量阈值。促销活动、节假日和业务淡旺季都会影响数据规模,可以结合历史基线、业务日历和变化比例判断异常。

二是源端和目标端记录数相同,也不代表数据一定正确。数量核对只能回答"来了多少",还需要结合主键、金额和关键字段检查,判断"来的数据是不是对的"。

时效规则:数据是否在业务需要的时间内到达?

及时性不是越快越好,而是要符合业务的实际要求。月度财务报表可能每天更新一次就够了;库存监控需要更及时的数据;订单状态跟踪则可能要求在较短时间内完成同步。

可以为关键数据设定明确的时效目标。假设订单产生后应在15分钟内进入分析平台,就需要同时记录业务发生时间和数据最终可用时间,超过阈值时再触发告警。

这里不能只看任务什么时候启动,也不能只看任务有没有成功。真正需要关注的是:数据从产生到可供下游使用,实际花了多长时间。

在 FineDataLink 5.0 中,可以根据不同场景选择定时同步或实时数据同步方式,并结合任务调度和运行监控,观察数据链路是否满足业务时效要求。

批次与增量连续性规则:中断恢复后,数据有没有漏掉或重复?

定时批次和增量同步都需要关注数据处理范围是否连续。

某订单同步任务按照更新时间抽取增量数据,任务中断后重新启动。虽然任务显示成功,但如果进度记录或边界条件处理不当,就可能漏掉一部分记录,也可能重复写入已经处理过的数据。

因此,这类规则需要结合具体链路进行设计:

  • 定时批次是否全部生成并成功处理;
  • 应处理的日期或时间区间是否存在缺口;
  • 增量读取是否遗漏边界时间内的数据;
  • 任务重跑后是否产生重复记录;
  • CDC 断点恢复后,变化事件是否得到正确处理。

对于 CDC,还需要关注日志位点、事件顺序、删除事件和断点恢复等问题。任务成功只能说明执行过程完成了,不能单独证明所有变化都已经正确传递。

五、规则设计完成后,怎样才能真正发挥作用?

15 种规则并不意味着每张表都要配置15种检查。真正落地时,应该先看业务风险,再决定规则范围、检查频率和异常处理方式。

先找关键数据。 订单编号、客户编码、产品编码、订单金额、库存数量等关键数据,通常比备注字段更值得优先检查。先把影响经营和下游分析的关键问题管住,再逐步扩展覆盖范围。

把规则写成能够执行的条件。 "数据要准确"不是规则,"订单金额应符合约定的数量、单价和折扣计算关系"才有明确的检查方向。进一步还需要定义容许误差、异常等级和处理方式。

不要让所有异常都变成阻断。 主键缺失、关键关联不存在等问题,可能需要阻止数据进入下游;金额偏离历史水平,则可以先告警、保留明细,再由业务人员核查。规则等级应与业务影响相匹配。

把检查放进数据处理流程。 与其等到月底发现报表对不上,不如在同步和加工完成后就检查关键字段、记录数量和汇总结果。利用 FineDataLink 5.0 的数据检测、任务调度、库表查询及血缘分析等能力,可以进一步把异常发现、数据核查和上游追溯连接起来。

最后明确谁来处理异常。 每条重要规则都应该有对应的业务负责人和技术负责人,并保留异常记录、处理状态和复核结果。对于反复出现的问题,还需要回到源系统、接口或加工逻辑中排查根因,而不是每次都手动修正数据。

规则本身也要定期维护。业务状态变化时更新枚举值,误报过多时重新评估阈值,数据结构变化时重新检查关联关系。只有规则能够跟着业务一起更新,质量检测结果才值得信任。

结语:规则不是越多越好,而是越贴合业务越好

数据质量规则可以从四个方面建立起来:

  • 字段值规则:检查完整性、唯一性、格式、范围和枚举值。
  • 记录逻辑规则:检查数值关系、条件依赖、时间顺序和业务约束。
  • 关联一致性规则:检查引用完整性、汇总结果和跨系统数据。
  • 数据过程规则:检查数据量、时效以及批次与增量连续性。

这四大类规则覆盖了从单个字段到跨系统关系、从数据内容到流转过程的常见检查需求。具体采用哪些规则,仍然要结合数据表的用途、业务风险、数据规模和维护成本来决定。

数据质量管理的关键,不是给每张表尽可能多地增加检查,而是让关键数据有明确标准、异常有可靠判断、问题有追溯路径、整改有验证结果。

当这些环节能够持续运行,数据质量规则才不再是项目验收时的一份配置清单,而会成为企业日常数据管理的一部分。

【AI声明】本文内容通过大模型匹配关键字智能生成,仅供参考,帆软不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系blog@fanruan.com进行反馈,帆软收到您的反馈后将及时答复和处理。

若想了解更多关于FineDataLink的相关信息,您可以访问下方链接,或点击下方组件,快速获得帆软为您提供的企业大数据分析平台建设建议、免费的FineDataLink试用和同行业自助智能分析标杆案例学习参考。

了解更多FineDataLink信息:www.finedatalink.com

帆软FineDataLink数据集成平台在线试用!

免费下载

评论区

暂无评论
帆软企业数字化建设产品推荐
报表开发平台免费试用
自助式BI分析免费试用
数据可视化大屏免费试用
数据集成平台免费试用