注意⚠:采用机器翻译,如有翻译错误,请指正。

数据仓库系统中的数据加载了ETL(提取,转换,加载)工具。 顾名思义,它执行以下三个操作:

  • 从事务系统中提取数据,该系统可以是Oracle,Microsoft或任何其他关系数据库,
  • 通过执行数据清理操作来转换数据,然后
  • 将数据加载到OLAP数据仓库中。

您还可以使用ETL工具从平面文件 (flatten files)(如电子表格和CSV文件)中提取数据,并将其加载到OLAP数据仓库中以进行数据分析和报告。让我们举个例子来更好地理解它。

例:

让我们假设有一个制造公司有多个部门,如销售,人力资源,物料管理,EWM等。所有这些部门都有单独的数据库,用于维护工作中的信息,每个数据库都有不同的技术,景观,表格现在,如果公司想要分析历史数据并生成报告,则应提取这些数据源中的所有数据并将其加载到数据仓库中以将其保存以用于分析工作。 ETL工具从所有这些异构数据源中提取数据,转换数据(如应用计算,连接字段,键,删除不正确的数据字段等),并将其加载到数据仓库中。稍后,您可以使用各种商业智能(BI)工具使用此数据生成有意义的报告,仪表板和可视化。

ETL和BI工具之间的区别

ETL工具用于从不同数据源提取数据,转换数据并将其加载到DW系统中; 然而,BI工具用于为最终用户生成交互式和临时报告,为高级管理层生成仪表板,为月度,季度和年度董事会会议生成数据可视化方案。

最常见的ETL工具包括 - SAP BO数据服务(BODS),Informatica - Power Center,Microsoft - SSIS,Oracle Data Integrator ODI,Talend Open Studio,Clover ETL开源等。

一些流行的BI工具包括 - SAP Business Objects,SAP Lumira,IBM Cognos,JasperSoft,Microsoft BI平台,Tableau,Oracle商业智能企业版等。

ETL过程

现在让我们更详细地讨论ETL程序中涉及的关键步骤。

提取数据

它涉及从不同的异构数据源中提取数据。从事务系统中提取数据会根据要求和使用的ETL工具而有所不同。通常通过在非工作时间运行预定的工作来完成,例如在晚上或周末运行工作。

ETL测试快速指南 - 图1

转换数据

它涉及将数据转换为适合的格式,可以轻松加载到DW系统中。数据转换涉及应用计算,连接以及在数据上定义主键和外键。例如,如果您希望总收入的百分比不在数据库中,则将在转换中应用%formula并加载数据。同样,如果您在不同列中具有用户的名字和姓氏,则可以在加载数据之前应用连接操作。有些数据不需要任何转换; 这种数据称为直接移动或传递数据。

数据转换还涉及数据更正和数据清理,删除不正确的数据,不完整的数据形成以及修复数据错误。在将数据加载到DW系统之前,它还包括数据完整性和格式化不兼容的数据。

将数据加载到DW系统中

它涉及将数据加载到DW系统中以进行分析报告和信息。目标系统可以是简单的分隔平面文件或数据仓库。

ETL工具功能

执行其功能。它通常是一个3层架构。

  • 暂存层 - 暂存层或临时数据库用于存储从不同源数据系统提取的数据。
  • 数据集成层 - 集成层转换来自登陆层的数据并将数据移动到数据库,数据库将数据排列成分层组(通常称为维度),以及事实和汇总事实。DW系统中事实和维度表的组合称为模式。
  • 访问层 - 最终用户使用访问层来检索分析报告和信息的数据。

下图显示了三个层如何相互作用。

ETL测试快速指南 - 图2

ETL测试 - 任务

在将数据移入生产数据仓库系统之前完成ETL测试。它有时也称为表平衡或生产对帐。它与数据库测试的范围和完成此操作所需的步骤不同。

ETL测试的主要目标是识别和缓解在处理分析报告数据之前发生的数据缺陷和一般错误。

ETL测试 - 要执行的任务

以下是ETL测试中涉及的常见任务列表:

  • 了解用于报告的数据
  • 查看数据模型
  • 源到目标映射
  • 对源数据进行数据检查
  • 包和模式验证
  • 目标系统中的数据验证
  • 验证数据转换计算和聚合规则
  • 源系统和目标系统之间的示例数据比较
  • 目标系统中的数据完整性和质量检查
  • 对数据进行性能测试

ETL与数据库测试

ETL测试和数据库测试都涉及数据验证,但它们并不相同。ETL测试通常对数据仓库系统中的数据执行,而数据库测试通常在事务系统上执行,其中数据来自不同的应用程序到事务数据库中。

在这里,我们强调了ETL测试和数据库测试之间的主要区别。

ETL测试

ETL测试涉及以下操作:

  • 验证从源到目标系统的数据移动。
  • 验证源和目标系统中的数据计数。
  • 根据要求和期望验证数据提取,转换。
  • 验证表关系 - 连接和键 - 是否在转换期间保留。

常见的ETL测试工具包括QuerySurge,Informatica等。

数据库测试

数据库测试更多地强调数据准确性,数据的正确性和有效值。它涉及以下操作:

  • 验证是否维护主键和外键。
  • 验证表中的列是否具有有效的数据值。
  • 验证列中的数据准确性,示例 - 月数列的值不应大于12。
  • 验证列中的缺失数据。检查是否存在实际应具有有效值的空列。
  • 常见的数据库测试工具包括Selenium,QTP等。

下表列出了数据库和ETL测试的主要功能及其比较

功能 数据库测试 ETL测试
首要目标 数据验证和集成 BI报告的数据提取,转换和加载
适用系统 业务流程发生的事务系统 包含历史数据但不在业务流环境中的系统
常用工具 QTP,Selenium等 QuerySurge,Informatica等
业务需求 它用于整合来自多个应用程序的数据,严重影响。 它用于分析报告,信息和预测。
造型 ER方法 多维
数据库类型 它通常用于OLTP系统 它适用于OLAP系统
数据类型 具有更多连接的规范化数据 具有较少连接,更多索引和聚合的非规范化数据。

ETL测试 - 类别

ETL测试分类基于测试和报告的目标。测试类别根据组织标准而有所不同,也取决于客户要求。通常,ETL测试基于以下几点进行分类 -

  • 目标计数测试的来源 - 它涉及源和目标系统中记录计数的匹配。
  • 目标数据测试的来源 - 它涉及源系统和目标系统之间的数据验证。它还涉及目标系统中的数据集成和阈值检查以及重复数据检查。
  • 数据映射或转换测试 - 它确认源和目标系统中对象的映射。它还涉及检查目标系统中数据的功能。
  • 最终用户测试 - 它涉及为最终用户生成报告,以验证报告中的数据是否符合预期。它涉及在报告中查找偏差并交叉检查目标系统中的数据以进行报告验证。
  • 重新测试 - 它涉及修复目标系统中数据中的错误和缺陷,并再次运行报告以进行数据验证。
  • 系统集成测试 - 它涉及测试所有单个系统,然后组合结果以查找是否存在任何偏差。有三种方法可用于执行此操作:自上而下,自下而上和混合。

根据数据仓库系统的结构,ETL测试(无论使用的工具如何)可分为以下几类

新的DW系统测试

在这种类型的测试中,建立并验证了新的DW系统。数据输入来自客户/最终用户以及不同的数据源,并创建新的数据仓库。之后,借助ETL工具在新系统中验证数据。

迁移测试

在迁移测试中,客户拥有现有的数据仓库和ETL,但他们寻找新的ETL工具来提高效率。它涉及使用新的ETL工具从现有系统迁移数据。

改变测试

在变更测试中,新数据从不同的数据源添加到现有系统。客户还可以更改ETL的现有规则,也可以添加新规则。

报告测试

报告测试涉及创建数据验证报告。报告是任何DW系统的最终输出。报告将根据其布局,报告中的数据和计算值进行测试。

ETL测试 - 挑战

ETL测试不同于数据库测试或任何其他传统测试。在执行ETL测试时,可能不得不面对不同类型的挑战。在这里我们列出了一些共同的挑战:

  • ETL过程中的数据丢失。
  • 数据不正确,不完整或重复。
  • DW系统包含历史数据,因此在目标系统中执行ETL测试时数据量太大且极其复杂。
  • 通常,ETL测试人员无法访问ETL工具中的作业计划。他们几乎无法访问BI报告工具,无法在报告中查看报告和数据的最终布局。
  • 由于数据量过高而且复杂,因此难以生成和构建测试用例。
  • ETL测试人员通常不了解最终用户报告要求和信息的业务流程。
  • ETL测试涉及各种复杂的SQL概念,用于在目标系统中进行数据验证。
  • 有时,测试人员不会获得源到目标的映射信息。
  • 不稳定的测试环境会延迟流程的开发和测试。

ETL - Tester的角色

ETL测试程序主要负责验证数据源,提取数据,应用转换逻辑以及在目标表中加载数据。

下面列出了ETL测试仪的主要职责。

验证源系统中的表

它涉及以下操作:

  • 计数检查
  • 将记录与源数据协调
  • 数据类型检查
  • 确保未加载垃圾邮件数据
  • 删除重复数据
  • 检查所有钥匙是否到位

应用转换逻辑

在加载数据之前应用转换逻辑。它涉及以下操作 -

  • 数据阈值验证检查,例如,年龄值不应超过100。
  • 应用转换逻辑之前和之后的记录计数检查。
  • 从暂存区到中间表的数据流验证。
  • 代理钥匙检查。

数据加载

数据从暂存区域加载到目标系统。它涉及以下操作:

  • 记录从中间表到目标系统的计数检查。
  • 确保关键字段数据不丢失或为空。
  • 检查是否在事实表中加载了聚合值和计算的度量。
  • 根据目标表检查建模视图。
  • 检查CDC是否已应用于增量装载表。
  • 维度表和历史表检查中的数据检查。
  • 根据加载的事实和维度表以及预期结果检查BI报告。

测试ETL工具

ETL测试人员也需要测试工具和测试用例。它涉及以下操作:

  • 测试ETL工具及其功能
  • 测试ETL数据仓库系统
  • 创建,设计和执行测试计划和测试用例。
  • 测试平面文件数据传输。

ETL测试 - 技术

在开始测试过程之前,定义正确的ETL测试技术非常重要。您应该接受所有利益相关方的接受,并确保选择正确的技术来执行ETL测试。这种技术应该为测试团队所熟知,他们应该了解测试过程中涉及的步骤。

可以使用各种类型的测试技术。在本章中,我们将简要讨论测试技术。

生产验证测试

要执行分析报告和分析,生产中的数据应该是正确的。此测试是对移动到生产系统的数据进行的。它涉及生产系统中的数据验证,并将其与源数据进行比较。

源到目标计数测试

当测试人员执行测试操作的时间较少时,就会完成此类测试。它涉及检查源和目标系统中的数据计数。它不涉及检查目标系统中的数据值。如果在数据映射之后数据处于升序或降序,则它也不涉及。

源到目标数据测试

在此类测试中,测试人员验证从源到目标系统的数据值。它会在转换后检查源系统中的数据值以及目标系统中的相应值。这种类型的测试非常耗时,通常在金融和银行项目中执行。

数据集成/阈值验证测试

在这种类型的测试中,测试人员验证数据范围。如果它们符合预期结果,则检查目标系统中的所有阈值。它还涉及在转换和加载之后从多个源系统集成目标系统中的数据。

示例 - 年龄属性的值不应大于100.在日期列 DD / MM / YY 中,月份字段的值不应大于12。

应用迁移测试

从旧应用程序迁移到新应用程序系统时,通常会自动执行应用程序迁移测试。此测试可节省大量时间。它检查从旧应用程序提取的数据是否与新应用程序系统中的数据相同。

数据检查和约束测试

它包括执行各种检查,例如数据类型检查,数据长度检查和索引检查。测试工程师在此执行以下方案 - 主键,外键,NOT NULL,NULL和UNIQUE。

重复数据检查测试

此测试涉及检查目标系统中的重复数据。当目标系统中存在大量数据时,生产系统中可能存在重复数据,这可能导致分析报告中的数据不正确。

可以使用SQL语句检查重复值,如:

  1. Select Cust_Id, Cust_NAME, Quantity, COUNT (*)
  2. FROM Customer GROUP BY Cust_Id, Cust_NAME, Quantity HAVING COUNT (*) >1;

由于以下原因,目标系统中出现重复数据:

  • 如果未定义主键,则可能会出现重复值。
  • 由于不正确的映射或环境问题。
  • 将数据从源传输到目标系统时出现手动错误。

数据转换测试

运行单个SQL语句不会执行数据转换测试。这非常耗时,并且涉及为每一行运行多个SQL查询以验证转换规则。测试人员需要为每一行运行SQL查询,然后将输出与目标数据进行比较。

数据质量测试

数据质量测试包括执行数字检查,日期检查,空检查,精确检查等。测试人员执行语法测试以报告无效字符,不正确的大写/小写顺序等,并参考测试以检查数据是否符合数据模型。

增量测试

执行增量测试以验证是否按预期结果执行Insert和Update语句。该测试与旧数据和新数据一起执行。

回归测试

当我们对数据转换和聚合规则进行更改以添加新功能时,这也有助于测试人员找到新错误,这称为回归测试。回归测试中出现的数据错误称为回归。

复检

在修复代码后运行测试时,称为重新测试。

系统集成测试

系统集成测试涉及单独测试系统的组件,然后集成模块。系统集成有三种方式:自上而下,自下而上和混合。

导航测试

导航测试也称为测试系统的前端。它通过检查前端报告的所有方面来涉及最终用户的观点测试 - 包括各个领域的数据,计算和聚合等。

ETL测试 - 过程

ETL测试涵盖ETL生命周期中涉及的所有步骤。首先是了解业务需求,直到生成摘要报告。

ETL测试生命周期中的常见步骤如下所示:

  • 了解业务需求
  • 验证业务需求
  • 测试估计用于提供运行测试用例和完成摘要报告的估计时间。
  • 测试计划涉及根据业务需求根据输入查找测试技术。
  • 创建测试场景和测试用例
  • 一旦测试用例准备就绪并获得批准,下一步就是执行执行前检查。
  • 执行所有测试用例。
  • 最后一步是生成完整的摘要报告并提交关闭过程。

ETL测试 - 场景

ETL测试场景用于验证ETL测试过程。下表介绍了ETL测试人员使用的一些最常见的方案和测试用例。

结构验证

  1. 它涉及根据映射文档验证源表和目标表结构。
  2. 应在源系统和目标系统中验证数据类型。
  3. 源系统和目标系统中的数据类型长度应相同。
  4. 源和目标系统中的数据字段类型及其格式应相同。
  5. 验证目标系统中的列名称。

验证映射文档

它涉及验证映射文档以确保已提供所有信息。映射文档应具有更改日志,维护数据类型,长度,转换规则等。

验证约束

它涉及验证约束并确保它们应用于预期的表。

数据一致性检查

它涉及检查外键等完整性约束的滥用。属性的长度和数据类型可能在不同的表中有所不同,尽管它们的定义在语义层保持相同。

数据完整性验证

它涉及检查是否所有数据都从源系统加载到目标系统。计算源系统和目标系统中的记录数。边界值分析。验证主键的唯一值。

数据正确性验证

它涉及验证目标系统中的数据值。表格中列出了拼写错误或不准确的数据。在导入时禁用完整性约束时,将存储Null,Not Unique数据。

数据转换验证

它涉及为输入值和预期结果创建方案电子表格,然后与最终用户进行验证。通过创建方案验证数据中的父子关系。使用数据分析来比较每个字段中的值范围。验证仓库中的数据类型是否与数据模型中提到的相同。

数据质量验证

它涉及执行数字检查,日期检查,精确检查,数据检查,空检查等。示例 - 所有值的日期格式应相同。

无效验证

它涉及检查Null值,其中为该字段提到Not Null。

重复验证

它涉及在数据来自源系统的多个列时验证目标系统中的重复值。如果根据业务需求存在任何重复值,则验证主键和其他列。

日期验证检查

验证在ETL过程中执行的各种操作的日期字段。执行日期验证的常见测试用例:

  • From_Date不应大于To_Date
  • 日期值的格式应该是正确的。
  • 日期值不应具有任何垃圾值或空值

完整数据验证减号查询

  • 它涉及使用减号查询验证源表和目标表中的完整数据集。
  • 您需要执行源减去目标和目标减去源。
  • 如果减去查询返回一个值,则应将其视为不匹配的行。
  • 您需要使用Intersect语句匹配源和目标中的行。
  • Intersect返回的计数应与源表和目标表的各个计数相匹配。
  • 如果减号查询未返回任何行且计数相交小于源计数或目标表计数,则表将保留重复行。

其他测试场景

其他测试方案可以验证提取过程没有从源系统中提取重复数据。

测试团队将维护一个运行的SQL语句列表,以验证是否未从源系统中提取重复数据。

数据清理:在将数据加载到暂存区域之前,应删除不需要的数据。

ETL测试 - 性能

ETL性能调整用于确保ETL系统是否可以处理多个用户和事务的预期负载。性能调优通常涉及ETL系统上的服务器端工作负载。它用于在多用户环境中测试服务器响应并查找瓶颈。这些可以在源系统和目标系统中找到,系统映射,会话管理属性等配置等。

如何执行ETL测试性能调优?

按照下面给出的步骤执行ETL测试性能调整:

  • 步骤1 - 查找正在生产中转换的负载。
  • 步骤2 - 创建相同负载的新数据或从生产数据移动到本地性能服务器。
  • 步骤3 - 禁用ETL,直到生成所需的负载。
  • 步骤4 - 从数据库表中获取所需数据的计数。
  • 步骤5 - 记下ETL的最后一次运行并启用ETL,这样它将获得足够的压力来转换所创建的整个负载。运行
  • 步骤6 - ETL完成运行后,记录创建的数据。

关键绩效指标

  • 找出转换负载所需的总时间。
  • 了解性能时间是否有所改善或下降。
  • 检查是否已提取并传输了整个预期负载。

ETL测试 - 可扩展性

ETL测试的目标是获得可靠的数据。通过使测试周期更有效,可以获得数据可信度。

全面的测试策略是建立有效的测试周期。测试策略应涵盖ETL过程每个阶段的测试计划,每次数据移动并说明每个利益相关者的职责,例如业务分析师,基础架构团队,QA团队,DBA,开发人员和业务用户。

为了确保从各方面测试准备情况,测试策略应关注的关键领域是:

  • 测试范围 - 描述要使用的测试技术和类型。
  • 设置测试环境。
  • 测试数据可用性 - 建议生成类似于涵盖所有/关键业务需求的数据。
  • 数据质量和性能验收标准。

ETL测试 - 数据准确性

在ETL测试中,数据准确性用于确保数据是否按预期准确加载到目标系统。执行数据准确性的关键步骤如下:

价值比较

值比较涉及将源系统和目标系统中的数据进行比较,最小化或不进行转换。可以使用各种ETL测试工具来完成,例如,Informatica中的源限定符转换。

一些表达式转换也可以在数据准确性测试中执行。可以在SQL语句中使用各种集合运算符来检查源系统和目标系统中的数据准确性。常用运算符是Minus和Intersect运算符。可以将这些运算符的结果视为目标和源系统中的值偏差。

检查关键数据列

可以通过比较源系统和目标系统中的不同值来检查关键数据列。以下是可用于检查关键数据列的示例查询:

  1. SELECT cust_name, Order_Id, city, count(*) FROM customer GROUP BY cust_name, Order_Id, city;

ETL测试 - 元数据

检查元数据涉及验证映射文档中的源和目标表结构。映射文档包含源列和目标列的详细信息,数据转换规则和数据类型,以及定义源和目标系统中表的结构的所有字段。

数据长度检查

目标列数据类型的长度应等于或大于源列数据类型。让我们举个例子。假设您在源表中具有名字和姓氏,并且每个名称的数据长度定义为50个字符。然后,目标系统中全名列的目标数据长度应至少为100或更多。

数据类型检查

数据类型检查涉及验证源和目标数据类型并确保它们相同。目标数据类型可能与转换后的源数据不同。因此,还需要检查转换规则。

约束/索引检查

约束检查涉及根据设计规范文档验证索引值和约束。所有不能具有Null值的列都应具有Not Null约束。主键列根据设计文档编制索引。

ETL测试 - 数据转换

执行数据转换有点复杂,因为无法通过编写单个SQL查询然后将输出与目标进行比较来实现。对于ETL测试数据转换,您可能必须为每一行编写多个SQL查询以验证转换规则。

首先,确保源数据足以测试所有转换规则。对数据转换执行成功的ETL测试的关键是从源系统中选择正确且足够的样本数据以应用转换规则。

下面列出了ETL测试数据转换的关键步骤:

  • 第一步是创建输入数据和预期结果的方案列表,并与业务客户进行验证。这是在设计期间收集需求的好方法,也可以用作测试的一部分。
  • 下一步是创建包含所有方案的测试数据。利用ETL开发人员自动化使用场景电子表格填充数据集的整个过程,以允许多样性和移动性,因为场景可能会发生变化。
  • 接下来,利用数据分析结果来比较目标和源数据之间每个字段中的值的范围和提交。
  • 验证ETL生成的字段的准确处理,例如代理键。
  • 验证仓库中的数据类型与数据模型或设计中指定的相同。
  • 在测试参照完整性的表之间创建数据方案。
  • 验证数据中的父对子关系。
  • 最后一步是执行查找转换。您的查询查询应该是直接的,没有任何聚合,并且预计每个源表只返回一个值。您可以像在上一个测试中一样直接在源限定符中加入查找表。如果不是这种情况,请编写一个查询,将查找表与源表中的主表连接起来,并比较目标中相应列中的数据。

ETL测试 - 数据质量

在ETL测试期间检查数据质量涉及对目标系统中加载的数据执行质量检查。它包括以下测试 -

号码检查

目标系统中的数字格式应相同。例如,在源系统中,对列进行编号的格式为x.30,但如果目标只有30,则必须加载不加前缀x。在目标列号中。

日期检查

日期格式在源系统和目标系统中应该是一致的。例如,它应该在所有记录中相同。标准格式为:yyyy-mm-dd。

精确检查

精度值应在目标表中按预期显示。例如,在源表中,值为15.2323422,但在目标表中,它应显示为15.23或15的循环。

数据检查

它涉及根据业务需求检查数据。应该过滤掉不符合某些标准的记录。

示例 - 只应在目标表中加载date_id> = 2015和Account_Id!=’001’的记录。

空检查

根据要求和某些字段的可能值,某些列应具有Null。

示例 - 终止日期列应显示为空,除非并且直到其活动状态列为“T”或“已故”。

其他支票

像From_Date这样的常见检查不应该大于To_Date。

ETL测试 - 数据完整性

检查数据完整性是为了验证目标系统中的数据是否在加载后符合预期。

可以为此执行的常见测试如下:

检查聚合函数(总和,最大值,最小值,计数)

在没有转换或简单转换的情况下检查和验证列的源和目标之间的计数和实际数据。

计数验证

比较源表和目标表中的记录数。可以通过编写以下查询来完成:

  1. SELECT count (1) FROM employee;
  2. SELECT count (1) FROM emp_dim;

数据配置文件验证

它涉及检查源表和目标表(事实或维度)中的聚合函数,例如count,sum和max。

列数据配置文件验证

它涉及比较每个不同值的不同值和行数。

  1. SELECT city, count(*) FROM employee GROUP BY city;
  2. SELECT city_id, count(*) FROM emp_dim GROUP BY city_id;

重复数据验证

它涉及验证列中的主键和唯一键,或者根据业务要求应该是唯一的列组合。您可以使用以下查询来执行重复数据验证:

  1. SELECT first_name, last_name, date_of_joining, count (1)
  2. FROM employee GROUP BY first_name, last_name HAVING count(1)>1;

ETL测试 - 备份恢复

计划对系统进行备份恢复,以确保系统尽快恢复,并尽快恢复操作,而不会丢失任何重要数据。

ETL备份恢复测试用于确保数据仓库系统从硬件,软件或网络故障中成功恢复,同时丢失任何数据。

必须准备适当的备份计划以确保最大的系统可用性。备份系统应该能够轻松恢复,并且应该接管故障系统而不会丢失任何数据。

ETL测试备份恢复涉及将应用程序或DW系统暴露在任何硬件组件,软件崩溃等的极端条件下。下一步是确保启动恢复过程,完成系统验证并实现数据恢复。

ETL测试 - 自动化

ETL测试主要使用SQL脚本完成,并在电子表格中收集数据。这种执行ETL测试的方法非常缓慢且耗时,容易出错,并且可以对样本数据执行。

手动ETL测试中的技术挑战

您的ETL测试团队将SQL查询写入仓库系统中的测试数据,他们需要使用SQL编辑器手动执行它们,然后将数据放入Excel电子表格并手动比较它们。此过程耗时,资源密集且效率低下。

市场上有各种工具可以自动化这个过程。最常见的ETL测试工具是QuerySurge和Informatica数据验证。

QuerySurge

QuerySurge是一种数据测试解决方案,用于测试大数据,数据仓库和ETL过程。它可以为您自动完成整个过程,并很好地适应您的DevOps策略。

QuerySurge的主要功能如下:

  • 它具有查询向导,可以快速轻松地创建测试QueryPairs,而无需用户编写任何SQL。
  • 它有一个带有可重用查询片段的设计库。您也可以创建自定义QueryPairs。
  • 它可以将源文件和数据存储中的数据与目标数据仓库或大数据存储进行比较。
  • 它可以在几分钟内比较数百万行和列的数据。
  • 它允许用户安排测试立即运行(1),(2)任何日期/时间,或(3)事件结束后自动运行。
  • 它可以为您的团队生成信息丰富的报告,查看更新以及自动发送电子邮件结果。

要使整个过程自动化,ETL工具应在ETL软件完成其加载过程后通过命令行API启动QuerySurge。

QuerySurge将自动无人值守运行,执行所有测试,然后通过电子邮件向团队中的每个人发送结果。

与QuerySurge一样,Informatica Data Validation提供了一个ETL测试工具,可帮助您在开发和生产环境中加速和自动化ETL测试过程。它允许您在更短的时间内提供完整,可重复和可审计的测试覆盖。它不需要编程技巧!

ETL测试 - 最佳实践

要测试数据仓库系统或BI应用程序,需要采用以数据为中心的方法。ETL测试最佳实践有助于最大限度地降低执行测试的成本和时间。它提高了要加载到目标系统的数据质量,从而为最终用户生成高质量的仪表板和报告。

我们在此列出了ETL测试可以遵循的一些最佳实践:

分析数据

分析数据以了解需求以建立正确的数据模型非常重要。花时间了解需求并为目标系统提供正确的数据模型可以减少ETL挑战。研究源系统,数据质量以及为ETL模块构建正确的数据验证规则也很重要。应根据源和目标系统的数据结构制定ETL策略。

修复源系统中的错误数据

最终用户通常知道数据问题,但他们不知道如何解决这些问题。找到这些错误并在它们到达ETL系统之前纠正它们非常重要。解决此问题的常用方法是在ETL执行时,但最佳做法是在源系统中查找错误并采取措施在源系统级别纠正错误。

找到兼容的ETL工具

常见的ETL最佳实践之一是选择与源系统和目标系统最兼容的工具。ETL工具为源系统和目标系统生成SQL脚本的能力可以减少处理时间和资源。它允许人们在最合适的环境中的任何地方处理转换。

监视ETL作业

ETL实施期间的另一个最佳实践是调度,审核和监视ETL作业,以确保按预期执行负载。

集成增量数据

有时,数据仓库表的大小较大,并且在每个ETL循环期间都无法刷新它们。增量加载确保仅将自上次更新以来更改的记录带入ETL过程,并且它对可伸缩性和刷新系统所花费的时间产生巨大影响。

通常,源系统没有时间戳或主键来轻松识别更改。如果在项目的后期阶段确定,这些问题可能非常昂贵。ETL最佳实践之一是在初始源系统研究中涵盖这些方面。这些知识有助于ETL团队识别变更的数据捕获问题并确定最合适的策略。

可扩展性

最佳做法是确保提供的ETL解决方案具有可扩展性。在实施时,需要确保ETL解决方案可以根据业务需求及其未来的潜在增长进行扩展。