数据测试常见错误

问题合集

  • 关联字段的表别名写错
  • where条件忘记添加dt
  • 字段类型长度不够,内容显示不完整
  • row_number取值随机
  • 字符串'null',不符规范,无法用nvl(字段,'')<>''过滤掉,关联时,如果是NULL会自动过滤掉,不会关联,但如果是字符串'null',则会关联上,可能会数据量过大,跑批卡住
  • 上下游码值判断不统一,case when 字段 = '0' then 'N' else 'Y' 如果字段上游码值是 Y,N 下游码值是0,1 判断过程中可能会出问题
  • 关联字段,业务含义不同时,关联会漏数
  • 数据乱码,ETL过程出错
  • 关联字段用错,加工字段用错
  • 加工逻辑不对,未按照业务需求加工
  • 数据未铺底,未初始化,累计与汇总相关字段,数值不对
  • 上游缺数漏数
  • 标签字段为空,可能是上游源表字段为空,或者上游源表无当前dt
  • 跑批脚本字段与建表脚本字段错位或不一致,导致插数错位

如何测试

关联字段的表别名写错

join关联3张表,就需要注意每张表之间的on条件。关联表的数量越多,关联条件出错的概率越大,且表别名写错执行脚本也不会报错。
此时就需要检查开发脚本。

字段类型长度不够,内容显示不完整

  • 检查每个字段值的最大长度值,是否超过varchar(20)字段长度最大值
  • 可以将多个字段union all一起查看
SELECT 'CERT_NUM'AS NAME, CERT_NUM AS VAL ,LNS FROM (SELECT CERT_NUM,LENGTH(CERT_NUM) AS LNS, ROW_NUMBER() OVER (PARTITION BY CERT_NUM ORDER BY LENGTH(CERT_NUM) DESC ) AS RN FROM TEST.A WHERE DT = '20220802' ) T WHERE T.RN = 1 LIMIT 2 UNION ALL

SELECT 'CUST_NM'AS NAME, CUST_NM AS VAL ,LNS FROM (SELECT CUST_NM,LENGTH(CUST_NM) AS LNS, ROW_NUMBER() OVER (PARTITION BY CUST_NM ORDER BY LENGTH(CUST_NM) DESC ) AS RN FROM TEST.A WHERE DT = '20220802' ) T WHERE T.RN = 1 LIMIT 2;

row_number取值随机

select 分组字段,排序字段,count(*) group by 分组字段,排序字段 having count(*)>1 ,可以查出有重复的数据;
也可以更进一步查:
select 分组字段,排序字段,count(*) group by 分组字段,排序字段 having count(distinct 其余字段)>1 ,可以查出分组字段,排序字段相同的情况下,其余字段不同,更能说明取值随机。

where条件忘记添加dt

如果一段SQL跑数时间过长,可以排查下。

字符串'null'

如果一段SQL跑数时间过长,可以排查下。

上下游码值判断不统一

结合数据,走一遍业务流程。

关联字段业务含义不一致

两张表即使字段名相同,业务含义也可能不同。注意同一表,有多个分区时,同一字段是否业务含义相同。

数据乱码

验证语句:select '字段1' as name, cast(字段1 as string) as value from 库名.表名 where dt = '时间' group by 字段1 order by length(字段1) desc limit 10;

字段值存在乱码,可能是因为数仓ETL出了问题。

关联字段用错,加工字段用错

结合需求文档,挨个临时表去排查,每段临时表出现数据量量级变化时,可以留意。

加工逻辑不对,未按照业务需求加工

结合需求文档,业务含义,每个字段比对。

数据未铺底,未初始化

累计金额,累计次数,近两年资产等等字段,注意是否能取到历史累计值。

上游缺数漏数

表数量比对,字段值比对,可找出差异。

跑批脚本字段与建表脚本字段错位或不一致,导致插数错位

对比insert字段与建表语句的字段是否是一一对应,保持一致,偶尔会插错位置,验数的时候还比较难发现(尤其两个字段都是金额类的字段)。
这里可以比对字段名是否一致,字段类型是否一致,字段位置是否一致。可提前比对跑批脚本与建表脚本字段是否相同。

posted @   中了毒蛇粉的猫  阅读(120)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示