小白学习大数据测试之ETL

之前发布过一篇关于ETL的文章,无奈被人说太简单。。。。唉,小编也是刚接触啊,自然不能那么高深,所以只是对学习的过程做了记录转换为文章分享给大家,如果对你有帮助,不要吝啬点赞+转发,如果对你没有帮助,那就请转身离开。。。。或者你写一篇更详细的给我,我申请红包给你(邪恶的笑~)

好啦,回归正题,这次作为补充在详细介绍下。ETL是什么?其实ta指的是一个过程,就是大数据中对数据处理的过程(抓取>转换>装载),并不是一个技术!

小编也是慢慢的学习大数据测试的知识,一直有个问题也困扰着我,就是怎么能判定数据的正确性?是,可以有多种手段去判定,但没办法保证100%的正确吧?(明白的朋友可以告诉我哈~)

反正,总而言之ETL测试的核心就是要保证数据的正确性、一致性,其他都是浮云~

常见的ETL测试方法(主要就是对数据处理中的各个关键点进行验证)



那么,怎么测试呢?莫急,看~

1、数据量。这个应该不用多说,你从源头拿来多少,存到目标表里又是多少,是否一致,是否正确

2、转换。主要是对数据格式的合法性进行验证。参考点为:

  • 源中的时间、数值、字符等数据的处理,是否符合数据仓库规则,是否进行统一的转换
  • 是否有超出维表或者业务值域的范围
  • 是否捕获字段空值,或者需要对空值进行替换为其他含义值的处理
  • 主键是否唯一
  • 特殊符号或者乱码符号的处理规则
  • 脏数据的处理

3、抽样。在转换完成之后要对转换之后的关键字段验证,还有源表和目标表的映射是否正确

4、加载。这块比较麻烦,有全量加载(先清空再插入)和增量加载(目标表仅更新源表变化的数据)。选择哪种方式要看实际的系统是怎么设计的,没有标准。实际应用中,增量加载用的比较多,下面我们就说说ta。

触发增量加载的方式(此处内容部分来自于网络的收集,自己做了下总结)



触发器方式

在要抽取的表上建立需要的触发器,一般要建立插入、修改、删除三个触发器,每当源表中的数据发生变化,相应的触发器就会将变化的数据写入一个临时表,抽取线程从临时表中抽取数据,临时表中抽取过的数据被标记或删除。

优点:数据抽取的性能高,ETL 加载规则简单,速度快,不需要修改业务系统表结构,可以实现数据的递增加载。

缺点:要求业务表建立触发器,对业务系统有一定的影响,容易对源数据库有倾入。

时间戳方式

在源表上增加一个时间戳字段,系统中更新修改表数据的时候,同时修改时间戳字段的值。当进行数据抽取时,通过比较上次抽取时间与时间戳字段的值来决定抽取哪些数据。

有的数据库的时间戳支持自动更新,即表的其它字段的数据发生改变时,自动更新时间戳字段的值。有的数据库不支持时间戳的自动更新,这就要求业务系统在更新业务数据时,手工更新时间戳字段。

优点:同触发器方式一样。

缺点:时间戳维护需要由业务系统完成,对业务系统也有很大的倾入性(加入额外的时间戳字段),特别是对不支持时间戳的自动更新的数据库,还要求业务系统进行额外的更新时间戳操作;另外,无法捕获对时间戳以前数据的delete和update 操作,在数据准确性上受到了一定的限制。

全表删除插入方式

这个就比较好理解了,每次ETL 操作均删除目标表数据,由ETL 全新加载数据。

优点:ETL 加载规则简单,速度快。

缺点:不可以实现数据的递增加载

全表比对的方式

ETL 工具事先为要抽取的表建立一个结构类似的临时表,该临时表记录源表主键以及根据所有字段的数据计算出来,每次进行数据抽取时,对源表和临时表进行的比对,如有不同,进行Update 操作,如目标表没有存在该主键值,表示该记录还没有,即进行Insert 操作。

优点:对已有系统表结构不产生影响,不需要修改业务操作程序,所有抽取规则由ETL完成,管理维护统一,可以实现数据的递增加载,没有风险。

缺点:ETL 比对较复杂,设计较为复杂,速度较慢。与触发器和时间戳方式中的主动通知不同,全表比对方式是被动的进行全表数据的比对,性能较差。当表中没有主键或唯一列且含有重复记录时,全表比对方式的准确性较差。

PS:说了这么多,可能会有朋友问那用什么进行ETL测试啊!答案:手工或ETL测试工具Informatica或Hivetest(后续有机会我们会介绍该工具如何使用,如果有朋友很熟悉了,也欢迎投稿给我们哈)

原文地址:http://blog.51cto.com/xqtesting/2067848

时间: 2024-07-28 15:09:51

小白学习大数据测试之ETL的相关文章

小白学习大数据测试之hadoop初探

Hadoop的历史 这里就不多说了,网上很多资料,总而言之对于hadoop谷歌和雅虎对于ta的贡献功不可没.更多介绍请自行查看这里:https://baike.baidu.com/item/Hadoop/3526507?fr=aladdin Hadoop的应用场景 数据分析,如日志系统.推荐系统 离线计算 海量数据存储 Hadoop的核心 Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算. 这里特别需要注

小白学习大数据测试之揭秘大数据的背景与发展

大数据是个神马鬼 根据麦肯锡全球研究所给出的定义是:一种规模大到在获取.存储.管理.分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模.快速的数据流转.多样的数据类型和价值密度低四大特征. 简单点说就是指无法在一定时间范围内用传统的计算机技术进行处理的海量数据集. 大数据市场前景 阿里巴巴创办人马云来台演讲中就提到,未来的时代将不是IT时代,而是DT的时代,DT就是Data Technology数据科技,显示大数据对于阿里巴巴集团来说举足轻重. 当前医疗行业.能源行业.通

小白学习大数据测试之主流程和关键步骤

转发是对小编的最大支持 万变不离其宗,不论是什么测试ta的主流程基本都是一样的,就是我们刚开始学习测试的那一套流程.也许你会觉得简单,但你要明白,无规不成方圆,有时候没有推行好或者结果不好不一定是因为技术不行,也许是没有好的流程.就好像,一辆汽车的生产,如果没有好的流程你觉得最终出来的汽车质量会好吗? 明白这个道理之后,我们就先来看看大数据测试的主流程是个神马样子的. 需求分析.这步考虑的越全面那么后续问题就会越少. 测试计划.此处省略N个字. 测试用例编写与评审.可以从数据库层面和页面层面考虑

湿货|小白学习大数据测试之Hive和Hbase

作为初学者经常会对Hive和Hbase产生疑问,不知道两者是干啥的,有啥区别,总觉得都是存储数据的.其实他们还真是有本质区别的,请听我慢慢道来~ Hbase是nosql数据库,以key-value形式存储数据的,主要用于海量数据的实时查询,比如日志信息. Hive是数据仓库,而非数据库,主要是用来解决数据处理.计算的.开发人员能够通过SQL来计算和处理HDFS上的结构化数据,适用于离线的批量数据计算 两者一般都是配合使用的,为了方便大家理解我简单画了下数据流图. 最后来一点小科普: 数据处理大致

小白学习大数据掌握这几个方法轻松入门

有很多学习大数据的朋友,在初期学习时,通常会对如何学习而感到迷茫.我经常在知乎上收到朋友关于如何入门.如何规划学习大数据.大数据的学习流程是什么的一些问题.今天我就粗浅的总结几点学习大数据方法. 一.兴趣建立 兴趣是可以让一个人持续关注一个事物的核心动力,那么兴趣的培养就非常重要了.如果你把写程序单纯作为赚钱手段,久而久之疲劳感会越来越强,会给今后的工作和生活带来很大的压力. 那么如何建立起对大数据的兴趣呢? 相信大家都有自己的兴趣爱好,而大数据的应用恰恰非常广泛,总能找到与你兴趣点符合的应用.

大数据学习|小白学习大数据需要满足这六个条件你就能学好大数据

有很多学习大数据的朋友,在初期学习时,通常会对如何学习而感到迷茫.我经常收到零基础的朋友关于如何入门.如何规划学习大数据.大数据的学习流程是什么的一些问题.今天我就粗浅的总结几点学习大数据方法. 大数据学习资料分享群119599574一.兴趣建立 兴趣是可以让一个人持续关注一个事物的核心动力,那么兴趣的培养就非常重要了.如果你把写程序单纯作为赚钱手段,久而久之疲劳感会越来越强,会给今后的工作和生活带来很大的压力. 那么如何建立起对大数据的兴趣呢? 相信大家都有自己的兴趣爱好,而大数据的应用恰恰非

小白学习大数据掌握这几个方法可轻松入门

有很多学习大数据的朋友,在初期学习时,通常会对如何学习而感到迷茫.我经常在知乎上收到朋友关于如何入门.如何规划学习大数据.大数据的学习流程是什么的一些问题.今天我就粗浅的总结几点学习大数据方法. 一.兴趣建立 兴趣是可以让一个人持续关注一个事物的核心动力,那么兴趣的培养就非常重要了.如果你把写程序单纯作为赚钱手段,久而久之疲劳感会越来越强,会给今后的工作和生活带来很大的压力. .在入门学习大数据的过程当中有遇见学习,行业,缺乏系统学习路线,系统学习规划,欢迎你加入我的大数据学习交流裙:52986

大数据开发经验分享:学习大数据开发的方法

学习新的知识,最重要的就是学习方法,有一个好的学习方法会起到事半功倍的效果.学习大数据开发的方法有哪些? 一.学会爱数据数据科学是一个广泛而模糊的领域,这使得它很难学习.没有动力,你最终会中途停止对自己失去信心.你需要些东西来激励你不断学习,即使是在半夜公式已经开始变的模糊,你还是想探究关于神经网络的意义.对于小白学习大数据需要注意的点有很多,但无论如何,既然你选择了进入大数据行业,那么便只顾风雨兼程.正所谓不忘初心.方得始终,学习大数据你最需要的还是一颗持之以恒的心. 二.在实践中学习学习神经

大数据为什么这么火?小白该如何去学习大数据

学习大数据之前,我们首先要知道的就是: 1.什么是大数据? 2.大数据是做什么的? 3.大数据就业领域,就业形势是怎么样的? 4.等明确以上三点之后,就可以开始着手学习大数据 要确定学习线路,零基础编程基础的小白怎么去学习? 仔细阅读完本文,你需要花大概20分钟 很多初学者,对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解. 第一:什么是大数据,大数据的作用 现代科技高速发展,一方面给人们生活带来了便利:另一方面也给人们工作.生活