ETL是神马


ETL(Extract,Transform and Load)翻译为中文就是数据提取、转换和加载。典型的大数据项目里,一般都有数据获取,数据清洗,数据发掘,数据可视化, 数据分析等步骤,而这个过程就是所谓的ETL。所以ta定义的是过程,并不是技术也不是工具。


数据仓库测试 VS 数据库测试


这里为什么会提到数据仓库呢?原因是ta与ETL有着千丝万缕的关系。比如,我们要盖一栋楼,那这个建筑图就是数据仓库,砖就是数据,而盖楼的过程就是ETL

明白了这个,我们来看看数据仓库测试和数据库测试的不同。虽然他们看起来都是对数据的测试,但还是有不一样的地方,大致如下(网上看到一段总结感觉非常不错,就直接拿来了):

数据库测试使用规模较小的数据通常是OLTP(联机事务处理)的数据库类型,而数据仓库测试是大容量的数据,涉及的是OLAP(联机分析处理)数据库。

数据库测试通常是从统一数据源中持续注入,而数据仓库测试的数据来自不同类型的数据源且数据是不连续和无序的。

我们在进行数据库测试时一般只执行CRUD(Create, read, update and delete),而在数据仓库的测试时我们只读(select)操作。

标准化的数据库被用于DB测试中,而历史DB则被使用在数据仓库测试中。


常用测试方法


TALEND STUDIO工具:它具有可视图形化操作界面,基本无需编码,丰富的图形化转换功能

Hive test

自己写sql:源sql MINUS 目标sql来做对比,类似

SELECT column_list_1 FROM table_1 MINUS SELECT columns_list_2 FROM table_2;

自动化脚本


关注点


源表和目标表数据量统计

数据合法性、有效性等(类型、空值、脏数据等)

加载规则测试(全量:先清空再插入(truncate and insert)、增量:先删后插(delete and insert))

还有很多。。。。。


常见bug


数据记录不一致或丢失

空值null问题

顺序错乱

过滤条件不正确