ETL 测试:简介

ETL(提取/转换/加载)是从源系统提取数据,将信息转换为一致的数据类型,然后将数据加载至单一数据仓库中的过程。ETL 测试是对数据进行确认、检查、验证以防出现重复记录和数据丢失的过程。

ETL 测试确保从异构数据源向中央数据仓库的数据传输能严格按照转换规则进行,并能通过所有有效性检查。与数据库测试中的数据调解不同,ETL 测试用于数据仓库系统,目的是获取用于分析和商业智能的相关信息。

Ready For More? Download ETL 测试:简介 User Guide now.

View Now

ETL 测试流程的 8 个阶段

有效的 ETL 测试可以在早期(源数据加载到数据存储库之前)检测源数据的问题,也可以检测用于指导数据转换和集成的业务规则中的不一致或模糊之处。测试流程可以分为 8 个阶段。

  1. 确定业务需求:根据客户预期设计数据模型、定义业务流程并评估报表需求。为使测试人员清晰定义、完整记录并充分了解项目范围,必须从以上步骤入手。
  2. 验证数据源:执行数据计数检查,验证表和列的数据类型是否满足数据模型的规范。确保已正确构建检查约束,并移除重复数据。如果不能按要求完成,聚合报告可能会不准确或具有误导性。
  3. 设计测试用例:设计 ETL 映射场景,创建 SQL 脚本,定义转换规则。同时,必须验证映射文件,确保其包含所有信息。
  4. 从源系统中提取数据:根据业务需求执行 ETL 测试。确定在测试中遇到的错误或缺陷类型并生成报告。在进行步骤 5 前,必须检测和再现所有缺陷,生成报告,修复错误,解决缺陷,并关闭报告。
  5. 应用转换逻辑:确保数据在转换后与目标数据仓库的模式相匹配。检查数据阈值和对齐方式,验证数据流。如此可以确保各列和表的数据类型与映射文档相匹配。
  6. 将数据加载至目标数据仓库:在数据从暂存迁移至数据仓库前后分别执行一次记录计数检查,确认无效数据已被拒绝,且默认值已被接收。
  7. 概要报告:验证概要报告的布局、选项、筛选功能和导出功能。概要报告可以让决策者/利益相关者了解测试流程的详细信息和结果,并知晓是否存在未完成的步骤(即“超出范围”)以及相关原因。
  8. 测试结束:测试结束提交。

ETL 测试人员需要完成的最后步骤,主要对工具及其功能以及 ETL 系统进行测试。

ETL 测试的 9 种类型

ETL 测试可分为 4 个大类别:新系统测试(数据获取自各种数据源)、迁移测试(数据从源系统传输至数据仓库)、更改测试(新数据添加至数据仓库)和报告测试(验证数据,进行计算)。

每个阶段可执行的 ETL 测试为:

 

类别 ETL 测试
新系统测试 - 数据质量测试
- 元数据测试
迁移测试 - 数据质量测试
- 源到目标计数测试
- 源到目标数据测试
- 性能测试
- 数据转换测试
- 数据集成测试
更改测试 - 数据质量测试
- 源到目标计数测试
- 源到目标数据测试
- 生产验证
- 数据集成测试
报告测试 - 报告测试
  1. 生产验证,也称为“生产调解”或者“表平衡”,是验证生产系统中的数据并将其与源数据进行对比的过程。这一过程可以防止数据遇到逻辑错误、加载失败或者运营流程未加载到系统等问题。
  2. 源到目标计数测试用于验证加载到目标数据库的记录数量是否与预期的记录数量匹配。
  3. 源到目标数据测试确保预期数据已被添加到目标系统且无丢失或截断,并且数据值在转换后满足预期。
  4. 元数据测试是对负载统计、调解总数和数据质量指标等 ETL 应用程序元数据进行数据类型、长度、索引和约束检查。
  5. 性能测试确保数据在预期的时间范围内加载到数据仓库,并确保测试服务器对多个用户和事务的响应足以满足性能和可扩展性的要求。
  6. 数据转换测试会对每一行运行 SQL 查询,以便验证数据是否根据业务规则正确转换。
  7. 数据质量测试包含语法测试(无效字符、字符模式、大小写顺序)和参考测试(数字、日期、精度和空值检查),确保 ETL 应用程序拒绝或接受默认值,并报告无效数据。
  8. 数据集成测试确认所有数据源的数据已经正确加载至目标数据仓库,同时对阈值进行检查。
  9. 报告测试会审查概要报告中的数据,验证布局和功能是否达到预期,并进行计算。

可在 ETL 流程中进行的测试还包括用户验收测试、GUI 测试和应用程序迁移测试,这些测试可以确保 ETL 架构能在其他平台上正常运行。增量 ETL 测试可以验证新记录和更新是否按预期进行处理。

ETL 测试的注意事项

在 ETL 流程的早期发现问题可以防止出现瓶颈,避免能够造成经济损失的延迟。在开始阶段创建源到目标映射文件并建立清晰的业务需求十分必要。频繁更改需求会迫使 ETL 测试人员更改脚本中的逻辑,导致进度极其缓慢。

ETL 测试人员必须准确预估数据转换要求和完成所需花费的时间,并对终端用户的需求形成清晰认识。在测试开始阶段即需要给予重视的其他注意事项包括:

  • 数据在迁移过程中丢失或损坏。
  • 源数据的可用性受限。
  • 低估数据转换要求。
  • 数据重复或不完整。
  • 历史数据数量庞大,导致在目标系统中进行 ETL 测试较为困难。
  • 测试环境不稳定。
  • 使用过时的 ETL 工具。

如何确定最佳的 ETL 测试工具

ETL 测试工具可以提高 IT 效率,简化获取洞察时在大数据中检索信息的过程。ETL 测试工具本身包含可用于提取和处理数据的程序和规则,减少了对通常需要大量人力和资金支持的传统编程方法的依赖。

ETL 测试工具的另一优势是它自带兼容性,可以与云数据仓库、ERP 和 CRM 平台兼容,这些平台包括 Amazon Web Services、Salesforce、Oracle、Kinesis、Google Cloud Platform 和 NetSuite 等。

对比 ETL 测试工具时应关注的功能包括:

  • 图形界面,可简化 ETL 流程的设计与开发。
  • 自动代码生成,可加速开发并减少错误。
  • 内置数据接口,可访问以文件格式储存的数据、数据库、打包应用程序或旧有系统。
  • 内容管理工具,可实现情景转换,用于 ETL 开发、测试和生产环境。
  • 先进的调试工具,可实时跟踪数据流和报告逐行行为。

源生云 ETL 工具专为云计算架构而设计,使企业尽享数据仓库工作带来的效益。

Ready For More? Download ETL 测试:简介 User Guide now.

View Now

ETL 测试的未来:AI 和云

依靠内部工具并采用人工编码编写脚本的企业效率低下,无法与当今采用迅猛发展的 ETL 云技术的企业相比肩。DevOps 团队节奏明快、高效灵活,可利用自动化的持续部署实践,每日大批量完成各类软件应用程序更新,这已经成为常态。

随着 DevOps 向云基数据环境和流程的扩展,对运用 ETL 测试工具进行自动数据集成的需求应运而生。ETL 测试工具可在无人工干预的情况下自主实时处理大量数据。瀑布式的方法(识别数据流中的问题、修复、测试模型、将数据加载至数据仓库、分析)正在被敏捷的源生云解决方案取代。

数据管理云架构和 AI“智能”数据集成助理逐步成为新趋势。

观看 Spark 机器学习的演示,了解如何训练系统学习人类决策并基于学习生成分类模型,请参阅如何运用 Spark 进行机器学习:

开源 ETL 测试

ETL 测试是一个以数据为中心的多级流程。它利用复杂的 SQL 查询,对各类源系统中数以百万计的记录进行访问、抽取和转换,并将其导入目标数据仓库。E<g id="1">

广泛的ETL 测试能帮助企业对其大数据的完整性树立信心,让企业安心使用基于大数据获得的商业智能,降低业务风险。Talend Open Studio for Data Integration是行业领先的开源 ETL 开发和测试工具,自 2006 年以来,下载量已达百万级别,获得 Apache 许可证后可免费使用。

基于订阅的 Talend Data Integration 含有相同的 ETL 测试功能,另外还具备企业级的持续交付机制,可促进团队合作,实现在远程系统上运行 ETL 测试作业,是质化和量化 ETL 指标的审计工具。

 

| Last Updated: January 23rd, 2019