本周学习目标
- 用六个维度描述一份业务数据的质量。
- 说明订单、订单行、付款、配送四张表各自的粒度和主键。
- 编制控制总额表,并用它证明数据完整。
一、为什么先查数据
会计判断和审计结论都建立在数据上。如果数据重复、缺失或被连接放大,后面的分析再精细也是错的。所以本课程规定:第2周必须证明数据完整性,未通过控制总额核对的小组先修正数据,再做后续实验。
二、数据质量的六个维度
| 维度 | 要问的问题 | 本课程中的检查方法 |
|---|---|---|
| 完整性 | 该有的记录都在吗? | 记录数和金额与模拟源总额核对 |
| 准确性 | 数值对吗? | 重算数量×单价−折扣+运费 |
| 唯一性 | 有没有重复? | 按“店铺ID+订单ID”检查重复 |
| 一致性 | 不同表说的一样吗? | 订单金额与付款金额、配送数量与订单数量比较 |
| 及时性 | 数据是什么时候到的? | 比较事件时间与接收、处理时间 |
| 有效性 | 取值合法吗? | 币种、状态码、日期格式是否在允许范围内 |
三、粒度与主键
粒度就是“这张表的一行代表什么”。说不清粒度,就不能正确连接。
| 表 | 一行代表 | 主键 | 与订单的关系 |
|---|---|---|---|
| 订单 | 一个订单 | 店铺ID + 订单ID | — |
| 订单行 | 订单中的一个商品 | 订单ID + 行ID | 一个订单多行 |
| 付款 | 一次付款事件 | 付款事件ID | 一个订单可有多次(如部分退款后重新付款) |
| 配送 | 一票包裹 | 配送ID | 一个订单可有多票(如套组分箱、部分发货) |
四、控制总额
控制总额是一组可以在源头和结果两端分别计算并比较的数字。常用三种:
- 记录数:订单数、订单行数、配送单数。
- 金额合计:含税金额合计、税额合计、运费合计。
- 数量合计:商品数量合计、包裹数合计。
| 控制项 | 模拟源 | 木耳云 | 差异 | 说明 |
|---|---|---|---|---|
| 订单数 | 40 | 40 | 0 | — |
| 订单行数 | 68 | 67 | 1 | 示例:一行因SKU未映射未导入 |
| 含税金额合计(JPY) | 1,284,600 | 1,262,600 | 22,000 | 与上面缺失的订单行对应 |
上表为示例数字。差异必须逐项解释,不得用手工调整总额的方式消除。
五、先汇总再连接
一个订单有多行、多次付款或多票配送时,要先把付款和配送分别按订单汇总,再与订单表连接,最后得到“每订单一行”的核对表。直接连接会让订单金额按配送票数成倍放大。
模拟源记录与木耳云结果要分开
模拟器保存了平台侧的源记录,用于和木耳云中的结果比对。核对时始终说明数字来自哪一边;不能根据木耳云的结果反推“源头应该是多少”。
常见误区
- 用订单号末几位或客户姓名匹配不同表。
- 只核对记录数,不核对金额。
- 发现差异后直接修改汇总表。