大数据测试之ETL

上一篇 / 下一篇  2021-01-05 11:41:28 / 个人分类:大数据

  。ETL是什么?其实ta指的是一个过程,就是大数据中对数据处理的过程(抓取>转换>装载),并不是一个技术
  总而言之ETL测试的核心就是要保证数据的正确性、一致性,其他都是浮云~
  常见的ETL测试方法(主要就是对数据处理中的各个关键点进行验证)
  那么,怎么测试呢?莫急,看~
  1、数据量。这个应该不用多说,你从源头拿来多少,存到目标表里又是多少,是否一致,是否正确
  2、转换。主要是对数据格式的合法性进行验证。参考点为:
  源中的时间、数值、字符等数据的处理,是否符合数据仓库规则,是否进行统一的转换
  是否有超出维表或者业务值域的范围
  是否捕获字段空值,或者需要对空值进行替换为其他含义值的处理
  主键是否唯一
  特殊符号或者乱码符号的处理规则
  脏数据的处理
  3、抽样。在转换完成之后要对转换之后的关键字段验证,还有源表和目标表的映射是否正确
  4、加载。这块比较麻烦,有全量加载(先清空再插入)和增量加载(目标表仅更新源表变化的数据)。选择哪种方式要看实际的系统是怎么设计的,没有标准。实际应用中,增量加载用的比较多,下面我们就说说ta。
  触发增量加载的方式
  触发器方式
  在要抽取的表上建立需要的触发器,一般要建立插入、修改、删除三个触发器,每当源表中的数据发生变化,相应的触发器就会将变化的数据写入一个临时表,抽取线程从临时表中抽取数据,临时表中抽取过的数据被标记或删除。
  优点:数据抽取的性能高,ETL 加载规则简单,速度快,不需要修改业务系统表结构,可以实现数据的递增加载。
  缺点:要求业务表建立触发器,对业务系统有一定的影响,容易对源数据库有倾入。
  时间戳方式
  在源表上增加一个时间戳字段,系统中更新修改表数据的时候,同时修改时间戳字段的值。当进行数据抽取时,通过比较上次抽取时间与时间戳字段的值来决定抽取哪些数据。
  有的数据库的时间戳支持自动更新,即表的其它字段的数据发生改变时,自动更新时间戳字段的值。有的数据库不支持时间戳的自动更新,这就要求业务系统在更新业务数据时,手工更新时间戳字段。
  优点:同触发器方式一样。
  缺点:时间戳维护需要由业务系统完成,对业务系统也有很大的倾入性(加入额外的时间戳字段),特别是对不支持时间戳的自动更新的数据库,还要求业务系统进行额外的更新时间戳操作;另外,无法捕获对时间戳以前数据的delete和update 操作,在数据准确性上受到了一定的限制。
  全表删除插入方式
  这个就比较好理解了,每次ETL 操作均删除目标表数据,由ETL 全新加载数据。
  优点:ETL 加载规则简单,速度快。
  缺点:不可以实现数据的递增加载
  全表比对的方式
  ETL 工具事先为要抽取的表建立一个结构类似的临时表,该临时表记录源表主键以及根据所有字段的数据计算出来,每次进行数据抽取时,对源表和临时表进行的比对,如有不同,进行Update 操作,如目标表没有存在该主键值,表示该记录还没有,即进行Insert 操作。
  优点:对已有系统表结构不产生影响,不需要修改业务操作程序,所有抽取规则由ETL完成,管理维护统一,可以实现数据的递增加载,没有风险。
  缺点:ETL 比对较复杂,设计较为复杂,速度较慢。与触发器和时间戳方式中的主动通知不同,全表比对方式是被动的进行全表数据的比对,性能较差。当表中没有主键或唯一列且含有重复记录时,全表比对方式的准确性较差。

TAG: 软件测试技术 大数据测试

 

评分:0

我来说两句

Open Toolbar