[大数据测试]ETL测试或数据仓库测试入门_etl上线压力测试(2)

数据仓库是为查询和分析而不是事务处理而设计的数据库。

数据仓库是通过整合不同的异构数据源而构建起来的。

数据仓库的存在使得企业或组织能够将整合、分析数据工作与事务处理工作分离。

数据能够被转换、整合为更高质量的信息来满足企业级用户不同层次的需求。

什么是ETL

ETL是Extract-Transform-Load的缩写(提取-转换-载入),是一个完整的从源系统提取数据,进行转换处理,载入至数据仓库的过程。

我们从联机事务数据库中提取数据,进行转换处理,匹配数据仓库模式,然后载入至数据仓库数据库中。

在通常情况下,大多数的数据仓库要整合非联机事务数据库系统的数据,例如来源文本文件、日志、电子表格等等。

下面我们一起看看ETL是怎么工作的。

例如一个公司,有关于其不同部门的数据记录,销售、市场、物流等等。每个部门所处理的客户信息是独立的,而且存储的数据也是相对不同的,假如销售团队有存储客户的姓名,而物流团队存储的是用户 的ID。

现在我们想要去检查客户的历史数据,并且想要了解他/她在不同的营销活动中购买的不同产品是什么。这将是一项非常枯燥的工作。

该解决方案就是使用数据仓库应用统一的结构来存储经过ETL处理过的不同源的数据。

ETL能够转换不同结构/类型的数据集为统一的结构,以便后续使用BI工具生成有意义的分析和表报。

下面我们看一下ETL过程完整的流程图:

ETLProcess.png

  1. Extract
    提取有效的数据
  2. Transform
  • 将提取的数据转换为数据仓库模式/格式
  • 构建keys:一个key是一个或多个数据属性的惟一标识实例,key的类型可以是主键(primary key)、外键(foreign key)、替代键(alternate key)、复合键(composite key)以及代理键(surrogate key)。这些key只允许数据仓库进行维护管理,且不允许其他任何实体进行分配。
  • 数据清理:在提取好数据后,则进入下一个节点:数据清理。对提取的数据中的错误进行标识和修复。解决不同数据集之间的不兼容的冲突问题,使数据一致性,以便数据集能用于目标数据仓库。通常,通过转换系统的处理,我们能创建一些元数据(meta data)来解决源数据的问题,并改进数据的质量。
  1. Load
  • 将转换后的数据载入数据仓库
  • 构建聚集:创建聚集对数据进行汇总并存储数据至表中,以改进终端用户的查询体验。

什么是ETL测试

ETL测试是为了确保从源到目的地数据经过业务转换完成后是准确的。

同时它还涉及数据的验证,即从源到目的地数据各个不同阶段验证数据。

ETL是Extract-Transform-Load的缩写。

ETL测试过程

与其他测试过程类似,ETL也需要经历不同的测试阶段。其流程如下:

ETLTestingProcess.png

ETL测试过程主要分为以下五大阶段:

  1. 分析需求、业务和源数据
  2. 获取数据
  3. 实现业务逻辑和维度建模
  4. 构建和填充数据
  5. 生成报告

ETL测试类型

  1. Production Validation Testing
    该类型的ETL测试是在数据迁移至生产系统时进行的。为了保证生产业务的正常运营,生产系统中的数据必须以正确的顺序进行排序。在该ETL测试类型中要注意从数据层面进行自动化测试和管理能力的植入。
  2. Source to Target Testing(Validation Testing)
    该类型的测试主要元组转换的数据是否满足预期的转换目标
  3. Application Upgrades(升级测试)
    该类型的ETL测试是可以自动生成的,能节省大量的测试开发时间。主要检查旧应用或存储库中提取的数据是否与新的应用或新的存储库中的数据完全相同。
  4. Metadata testing(元数据测试)
    元数据测试包括数据类型检查、数据长度和索引/约束检查。
  5. Data Completeness Testing(数据完整性测试)
    当把所有期望的数据从源加载到目标地时,就算完成了数据完整性测试。在数据完整性测试过程中,我们还可以进行一些简单的转换或无转换的源与目标之间的计数、聚合和实际数据比较和验证的测试。
  6. Data Accuracy Testing(数据准确性测试)
    该类型测试验证数据正确的完成加载和按预期目标进行转换。
  7. Data Transformation Testing(数据转换测试)
    测试数据转换是一个复杂的过程,并不是简单的写一个源SQL查询并与目标进行比较来实现的。可能需要为每个行运行多个SQL查询,来验证转换规则
  8. Data Quality Testing(数据质量测试)
    数据质量测试包含语法和基准测试。为了避免在业务过程中由于日期或唯一编号(例如订单号)引起的错误,进行数据质量测试。
  • 语法测试:根据无效字符、字符模式、不正确大小写、顺序等出具脏数据测试结果
  • 基准测试:基于数据模型检查数据,例如客户ID数据质量测试,包含:数字检查、日期检查、精度检查、数据检查、零校验等等
  1. Incremental ETL Testing(增量ETL测试)
    该类型测试主要验证旧数据和新数据的完整性,并添加新数据。增量测试验在增量ETL过程中,插入和更新是否满足预期的要求。
  2. GUI/Navigation Testing
    该类型测试主要检查生成的大数据报告的UI\导航方面是否正常

怎么创建ETL测试用例

ETL测试是一个可以应用于信息管理领域中不同工具和数据库的概念。

ETL测试的目的是确保在业务转换完成后从源加载到目的地的数据是正确无误的。

ETL测试同样还涉及在源和目的地之间转换时的各个阶段的数据的验证。

在从事ETL测试时,有两份文档是ELT测试人员实时使用的:

  1. ETL映射表:一个ETL映射表包含源和目的地表的所有的信息,包括每个列及其引用表等约束关系。ETL测试人员需要更为优美的SQL查询语句,因为在ETL测试各阶段可能需要编写具有多个连接的大查询来验证数据。ETL映射表在为数据验证编写查询时提供大量的有用的信息。
  2. 源、目标数据库模式:该模式应该便于验证映射表中的所有细节。

ETL测试场景和测试用例

序号测试场景测试用例

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

到真正的技术提升。**

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值