数仓分ods源业务数据层、dwd、dws指标层、adm应用数据层
一、发散验证(数据唯一性检查)
如:按月和组织粒度(联合主键)、存在同一个月+同一个组织多条记录
select
month_id,
organ_id,
count(*)
from
dws_usernum_month t
group by
month_id,
organ_id
having
count(*)>1
二、代码检查:
1、DWD/DWS DDL和JOB字段对应关系,是否有错位问题。
2、 DWS 分区检查(是否漏填分区)
3、DWS 关联的从表是否存在发散(关键条件不唯一)
4、DWS 主表和从表关联,从表关联条件是否数据过少、导致大量数据关联不到、可能需要调整字段
三、数据逻辑验证:
1、ADM跨表比较同一个指标
2、业务基本逻辑检查:如,新到访一定小于复访数
3、数据抽样稽核:按照最细粒度如具体单个订单、单个人员的结果指标和业务源数据一致
4、横向对比:表内比较(单个字段,等于某个字段)、
5、按常识:比如有值的指标不应该空值、负值、等
6、同指标不同层级汇总结果一致性比对: ODS&ADM,DWD和ADM
测试大类 | 测试子类型 |
发散 | 数据不唯一,相同主键存在1条以条记录(DIM\DWS\ADM层) |
逻辑合规性 | 违背业务场景,如: 成交笔数负值 |
总量 | 总量级(不分地区总量:ODS\DWD\DWD\ADM\erpADM) |
分量 | 分量级(按地区总量:ODS\DWD\DWD\ADM\erpADM) |
波动率 | T分区和T-1分区波动率大于阈值(阈值:自定义) |
维度为空 | 维度为空(地区、事业部组织、组织、项目) |
一致性 | 同指标,不同时间维度(年表\季表\月表\周表,相同时间段) |
同指标,不同粒度(如: 成交笔数,地区、城市、区县) |