数据仓库图解交互式教材
数据质量一张表到底应该检查什么?
学习进度0 / 64
EN
首页课程学习一张表到底应该检查什么?
6-2数据质量12 分钟

一张表到底应该检查什么?

从 Grain 出发,再检查字段是否有意义、对象关系是否成立。

Grain质量规则存款余额
一张表到底应该检查什么?

一张表到底应该检查什么?

打开 AccountBalanceSnapshot,先别急着勾选“完整性”或“有效性”。如果一行代表的对象没有说清楚,规则也就没有落脚点。

表AccountBalanceSnapshot账户余额日终状态
GrainAccount × snapshot_date一行代表什么
关系branch_id → Branch机构引用必须可追溯
规则0 duplicate关键身份重复零容忍

这张表的一行到底代表什么?

核心概念

Grain / 粒度

Grain 说明一行数据代表的业务单位。本例中,一行是一个 Account 在一个 snapshot_date 的余额状态。

先把一行读懂,再谈校验

AccountBalanceSnapshot 的一行不是一笔存入交易,也不是一个客户的全部历史余额。它表示某个账户在某个快照日的状态,身份由 Account × snapshot_date 组成;账户的 Customer、Product 和 Branch 关系决定了这条余额能按什么口径分析。

一旦这个含义明确,重复身份、关键字段缺失、非法 currency 和找不到 Branch 的记录就有了具体判断依据。

  • 记录身份:同一个 Account × snapshot_date 不能重复。
  • 关键字段:account_id、snapshot_date、balance 不能无意义缺失。
  • 字段语义:currency 需要是已经登记的币种代码。
  • 对象关系:branch_id 必须能在 Branch 中找到。
RULE REASONING LAB · 从 Grain 推出规则

这条记录哪里不对?

切换四个确定性故障,观察同一条存款余额数据如何分别暴露身份、字段、语义和引用关系问题。

正在加载交互实验…

Grain 是第一锚点,但不是唯一来源

Grain 能告诉我们“重复什么算重复”,却不能单独告诉我们哪些 currency 合法,也不能代替 Branch 参考数据。规则还要来自字段定义、对象关系和数据集预期。

因此,质量检查不是把几种抽象维度排成清单,而是把业务含义落到可观察的行和字段上。

  • 知道一行代表什么,才能判断记录身份。
  • 知道字段表达什么,才能判断值是否有意义。
  • 知道对象怎样关联,才能发现孤立引用。