大数据测试之“什么是ETL”?
译自:https://www.guru99.com/utlimate-guide-etl-datawarehouse-testing.html
一、什么是ETL
ETL代表Extract-Transform-Load,它是如何将数据从源系统加载到数据仓库的过程。从OLTP数据库中提取数据,进行转换以匹配数据仓库架构,然后将其加载到数据仓库数据库中。许多数据仓库还合并了来自非OLTP系统的数据,例如文本文件,旧系统和电子表格。
让我们举例看看ETL过程是如何工作的:
例如,一家零售商店有不同的部门,例如销售,市场,物流等。它们各自独立地处理客户信息,并且存储数据的方式也大不相同。销售部门按客户名称存储,而营销部门按客户ID存储。
现在,如果他们想查看客户的历史记录,并想知道他/她由于不同的营销活动而购买了哪些不同的产品,这个过程将很冗长复杂。
解决方案是使用数据仓库使用ETL以统一的结构存储来自不同来源的信息。ETL可以将不同的数据集转换为统一的结构。后来使用BI(商业智能)工具可以从这些数据中获取有意义的见解和报告。
下图为您提供了ETL测试流程的ROAD MAP和各种ETL测试概念:
ETL测试流程1.提取-E
提取相关数据。
2.转换-T
将数据转换为DW(数据仓库)格式,构建密钥-密钥是唯一标识一个实体的一个或多个数据属性。各个类型的密钥是主键,交替键,外键,复合键,代理键。数据仓库拥有这些密钥,并且永远不允许任何其他实体分配它们。数据清理:提取数据后,它将进入下一阶段,即清理和整理数据。清除会遗漏数据,并识别并修复错误。一致性意味着解决那些不兼容的数据之间的冲突,以便可以在企业数据仓库中使用它们。除这些以外,此系统还会创建用于诊断源系统问题并改善数据质量的元数据。
3.加载-L
将数据加载到DW(数据仓库)中,构建聚合-创建聚合是汇总和存储事实表中可用的数据,以提高最终用户查询的性能。
二、什么是ETL测试
进行ETL测试以确保业务转换后从源加载到目的地的数据是准确的。它还涉及验证源和目标之间使用的各个中间阶段的数据。
三、ETL测试流程
与其他测试过程类似,ETL也经历不同的阶段。ETL测试过程的不同阶段如下:
ETL测试阶段ETL测试分为五个阶段:识别数据源和需求,数据采集,实施业务逻辑和维度建模,建立并填充数据,建立报告。
ETL数据处理过程和测试过程四、ETL测试类型
五、创建ETL测试用例
ETL测试是一种概念,可以应用于信息管理行业中的不同工具和数据库。 ETL测试的目的是确保业务转换后从源加载到目标的数据是准确的。 它还涉及验证源和目标之间使用的各个中间阶段的数据。在执行ETL测试时,ETL测试人员将始终使用的两个文档:
1、ETL映射表: ETL映射表包含源表和目标表的所有信息,包括每一列以及它们在参考表中的查找。ETL测试人员需要熟悉SQL查询,因为ETL测试可能涉及编写具有多个联接的大型查询以在ETL的任何阶段验证数据。ETL映射表在编写查询以进行数据验证时提供了重要的帮助。
2、源,目标的数据库模式:应便于检查映射表中的任何细节。
六、ETL测试场景和测试用例
七、ETL的测试bug类型
ETL的bug类型ETL错误类型
八、数据库测试和ETL测试之间的区别
ETL测试和数据库测试区别九、 ETL中的性能测试
ETL中的性能测试是一种测试技术,可确保ETL系统可以处理多个用户和事务的负载。ETL性能测试的主要目标是通过识别和消除性能瓶颈来优化和提高会话性能。源数据库和目标数据库,映射,会话和系统可能存在性能瓶颈。用于性能测试/调整的最佳工具之一是Informatica。
十、 ETL测试自动化
ETL测试的一般方法是使用SQL脚本或对数据进行“目测”。这些ETL测试方法耗时,容易出错并且很少提供完整的测试范围。为了在生产和开发环境中加速,提高覆盖范围,降低成本,提高ETL测试的缺陷检测率,自动化是当务之急。一种这样的工具是Informatica。
十一、 ETL测试的最佳做法
- 确保数据正确转换
- 在没有任何数据丢失和截断的情况下,应将预计的数据加载到数据仓库中
- 确保ETL应用程序适当拒绝并替换为默认值并报告无效数据
- 需要确保在规定和预期的时间范围内将数据加载到数据仓库中,以确认可伸缩性和性能
- 无论可见度如何,所有方法均应具有适当的单元测试
- 为了衡量其有效性,所有单元测试应使用适当的覆盖技术
- 为每个测试用例争取一个断言
- 创建针对异常的单元测试