数仓测试2-数据测试

数据测试

数据仓库的核心是大量的数据,数据在进入数据仓库之前必须对数据进行预处理,包括抽取,转换和加载(ETL)。测试人员必须测试这些数据是否准确,精度是否丢失,是否符合需求说明。如下图中一个简单的数据转换和传输例子,数据源的数据必须经过稍微的变换后加载到目的表中。数据源的字段A和关联表关联后得到字段A1加载到目的表中,其他数据源字段BDValue1Value2Value3直接加载到目的表的BDValue1Value2Value3

可以用如下几个测试用例来验证上图中数据仓库的数据传输后的数据准确性: 

 Select  count(1) from 数据源  inner join 关联表 on数据源 .A =关联表.A  Inner join 目的表 on关联表.A1 =目的表A1  And  数据源.B=目的表.B   And  数据源.C =目的表.C  Where  数据源.Value1 <>目的表.Value1 

Select  count(1) from 数据源  inner join 关联表 on数据源 .A =关联表.A  Inner join 目的表 on关联表.A1 =目的表A1  And  数据源.B=目的表.B   And  数据源.C =目的表.C  Where  数据源. Value2 <>目的表.Value2 

Select  count(1) from 数据源  inner join 关联表 on数据源 .A =关联表.A  Inner join 目的表 on关联表.A1 =目的表A1  And  数据源.B=目的表.B   And  数据源.C =目的表.C  Where  数据源.Value3 <>目的表.Value3 

Select  count(1) from 数据源  inner join 关联表 on数据源 .A =关联表.A  Inner join 目的表 on关联表.A1 =目的表A1 And  数据源.B=目的表.BAnd  数据源.C =目的表.C  Where  数据源.Value4 <>目的表.Value4 

或者可以用一个SQL语句实现如上所有的功能: 

Select  count(1) from 数据源  inner join 关联表 on数据源 .A =关联表.A  Inner join 目的表 on关联表.A1 =目的表A1  And  数据源.B=目的表.B   And  数据源.C =目的表.C  Where  数据源.Value1 <>目的表.Value1  Or  数据源.Value2 <>目的表.Value2    Or数据源.Value3 <>目的表.Value3   Or 数据源.Value4 <>目的表.Value4

 对于精度误差问题,可以用“ ABS(数据源.Value -目的表.Value) <0.001” (注:假设0.001是允许误差)来代替“数据源.Value <>目的表.Value” 

如果以上测试用例返回不等于0的值,则说明数据传输和转换失败或错误。

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值