概述
商业信息和数据对于任何一个企业而言都是至关重要的。现在很多公司都投入了大量的人力、资金和时间对这些信息、数据进行分析和整理。
数据的分析和整理已经获得了巨大的潜在市场,因此为了使得这个过程更为简单,越来越多的软件供应商引入了ETL测试工具。
目前,有需要开源的ETL工具,供应商允许用户直接从他们的官方网站免费下载,但有可能升级到新版或企业版需要订阅付费。
所以我们需要根据企业的不同业务结构和模型,在选择ETL工具之前,对其进行分析。在这些开源的ETL工具的帮助下,我们将有机会尝试在不付需要投入巨额资金的情况下对我们的数据进行分析和整理。
而当前几乎所有的巨头软件供应商都推出了自己的BI或ETL工具。
一些常用的ETL工具
- Talend Open Stduio
- Clover ETL
- Elixir
- Pentaho
- Informatica
- IBM - Cognos Data Manager
- Oracle - Data Integrator
- SAS - Data Integration Studio
- AB Inito, SAP - BUsiness Objects Data Integrator
一旦选择了ETL工具,下一阶段就是对该工具进行测试调研,以进一步了解该工具的特性。
这类工具有助于处理海量的数据和历史数据,同时必须能执行ETL测试,以确保数据的准确性,因此ETL测试是非常的重要的。
ETL有效的两种测试类型
- 应用测试
- 数据测试
ETL测试过程
虽然现在有很多的ETL工具用于数据处理,但对于实际业务而言,ETL测试是同样的重要。
一个良好的ETL测试策略定义可以使得测试过程变得更容易,因此在选择ETL工具前应该遵循这个基本的测试过程。
ETL测试过程:
- 分析需求:理解业务结构极其特殊要求
- 验证和测试评估:对进行过程所需的时间和专业知识进行评估
- 测试计划和设计测试环境:基于输入进行估算,计划并制定ETL环境
- 测试数据的准备和执行:根据实际要求准备和执行测试数据
- 报告:出具实际的报告
其他信息请参见《ETL测试或数据仓库测试入门》
常见面试题
未来随着大数据和人工智能的进一步发展,ETL测试在国内的需要必然会从0到有的突破,下面我们就未来国内求职ETL测试岗位可能碰到的面试题进行说明。
问:什么是ETL?
答:ETL是Extracting-Transfroming-Loading的缩写,指从任何外部系统提取、转换、载入数据到目标地。这是数据集成过程的三大基本步骤。 Extracting:从源数据中提取目标数据集 Transfroming:将目标数据集进行业务逻辑转换 Loading:以合适的格式将经过业务逻辑转换的数据集载入到目标地
问:为什么ETL测试是必须的?
答:
- 为了对从源到目的转换过程中的数据进行检查
- 跟踪整个ETL过程的效率和速度
- 熟悉ETL过程,才能更好的服务于我们的企业实践
问:ETL测试工程师的主要职责是什么?
答:
- 深入理解ETL工具和过程
- 为ETL测试各阶段设计测试场景
- 针对各阶段的测试场景实施不同类型的测试
- 对数据质量进行检查
问:在ETL过程中,维度指什么?
答:维度指汇总数据时进行的排序的组或类别
问:在ETL过程中,什么是Staging Area?
答:Staging Area至在ETL过程中临时存储的地方,在这里,我们通常会进行数据清理和重复检查等处理
问:请解释下ETL Mapping Sheets(ETL映射表)
答:ETL映射表包含了从源中提取的行和列的所有的信息。该表能帮助我们更好的完成整个ETL过程和ETL测试。
问:请列举几个ETL测试常见的用例并解释说明
答:
- ETL映射表验证:验证映射表中的各项信息是否正确
- 数据检查:验证数据的准确性、数值、null检查等等
- 正确性问题: 验证数据的拼写是否有错、数据是否有错和是否存在空数据等问题
问:请列举你所知道的ETL bug类型
答:计算错误、用户界面bug、源数据错误、边界错误等
小结
当然本文所列举的工具并未深入进行说明,而所列的几个面试题也只是一些基本的概念,后续会进一步介绍这类的知识,以从0到有的增强个人的能力,扩展知识面。