`
liubin2010
  • 浏览: 307824 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

ETL测试流程图

阅读更多

 

本文档主要介绍ETL测试的流程,以及一般的项目情况来说明ETL的测试方法。

ETL 测试流程图


测试环节

1、 需求分析

熟悉业务流程和业务规则,根据需求分析出源表与目标表以及之间的mapping关系,解析出业务的 数据流图:

 

1、 测试分析

测试点:

ETL常规检查:

1.ETL脚本是否有运行错误,脚本运行时间(看执行计划)

2.ETL脚本的错误处理机制是否完整(代码review)

3.ETL脚本是否支持回滚

业务逻辑检查:

1.数据量的检查。核对记录数是否和预期一致

2.唯一性检查。

 主键是否重复(cookie_id,member_id是否重复)

3.业务字段转换正确性检查。指标计算是否正确.抽样检查。

 源表和目标表各取一定数量记录,判断字段映射是否正确(映射字段)。

 指标计算是否正确(指标计算字段)

4.随机性验证(随机取几条数据,看是否有乱码,异常数据等。

 

测试重点

项目中的关键业务,复杂逻辑部分作为测试重点

用例划分说明:

按每个指标设计用例。

测试策略:

测试策略:增量测试(逐步提交测试)

测试方法:基于查询的测试(预期结果基于sql来展现,做到数据变化,结果不变。另外便于回归)

2、 标准数据集构建

造数据分2个方面,1个是直接抽取线上的数据1个是用脚本造异常数据。

3.1 利用dblink抽取线上的数据。抽取线上数据时,需要注意,测试数据的全面性。即测试数据全面覆盖。比如sex字段,在抽取线上数据时,需要抽取到male、female情况,而不能仅仅是male或female,这样测试数据就会缺失。对于有关联的表进行数据抽取时,可以先抽取主表,然后根据主表的数据有条件的抽取子表。

3.2 造异常数据,异常数据可以从下面几个方面进行考虑:字段类型、字段长度、空值、业务异常值、唯一约束值

3、 测试用例设计

测试用例可以单独设计,也可以采用调度的思想进行设计,采用调度方法进行设计时,能一次验证多个用例,另外也方便回归。这里说一下调度思想的测试用例的设计思路。

设计思路:

 

总调脚本:

CREATE OR REPLACE PACKAGE BODY PKG_KPI_TC IS
    PROCEDURE SCHEDULER(
 
/*********************************************************************
 *parameter:
 *authoer XIANGMIN.MENGXM
 *time 2009-6-26
 *
 *********************************************************************/

 P_DATE IN DATE DEFAULT TRUNC(SYSDATE ))
 IS
 V_DATE               DATE := TRUNC(P_DATE);
 BEGIN
    DELETE FROM test_map WHERE yyyymmdd = v_date;
    COMMIT ;--
调度之前先清空测试表
    REF_KPI_TC_001(v_date);-- 用例1
    REF_KPI_TC_002(v_date);-- 用例2
         END ;
END PKG_KPI_TC;


测试用例1

CREATE OR REPLACE PROCEDURE REF_KPI_TC_001(P_DATE IN DATE DEFAULT TRUNC(SYSDATE )) IS
 V_id         NUMBER ;
 V_DATE           DATE := TRUNC(P_DATE);
 BEGIN
SELECT  a.id into v_id FROM  src_a;

INSERT INTO test_map(YYYYMMDD,id,x) VALUES (v_date, v_id ,x);
 COMMIT ;
END ;

 

1、 测试结果验证

Exec procedure_();-- 得出被测脚本的结果

Exec REF_KPI_TC_001(); 得出测试结果

 

结果验证:

第一步先验证记录数是否一致,如果记录数不一致,则一定存在问题,检查问题,找出原因。

第二步在记录数一致的情况下,检查值是否正确。

方法1:巧用minus

SELECT * FROM target_a
MINUS
SELECT * FROM test_map;

-- 注意,此处一定要调换2个表的位置进行比较。Minus函数在进行比较时,以第一张表为准,找出第一张表中与第二张表不一致的地方。即:找出sumdt0表中与map表不一致的结果

方法2:写脚本进行验证

2、 发布后

在相关平台观察数据趋势,数据监控。项目发布后,我们可以观察数据的波动趋势,一般来说数据的波动是在一定范围,遵循一定原则的,如果发现数据波动超出了预计范围,这个时候就需要特别注意了。

分享到:
评论

相关推荐

    ETL

    测试可能包括单元测试、集成测试和性能测试,旨在验证ETL流程的正确性、稳定性和效率。 总结起来,ETL是数据处理的关键步骤,涉及数据的提取、转换和加载。通过源码和工具的结合,可以实现高效、灵活的ETL流程,并...

    ETL设计与开发实践

    3. ETL流程设计:绘制ETL流程图,定义数据流路径,包括各个组件的功能和相互关系。 4. 错误处理:建立完善的错误处理机制,确保数据质量问题能得到有效解决。 5. 性能优化:考虑ETL的执行效率,通过并行处理、分区...

    BI ETL ELT Kettle 基础知识中文文档汇总

    ETL流程、数据流图及ETL过程解决方案.pdf ETL流程、数据流图及ETL过程解决方案.ppt ETL的主要步骤.pdf ETL的本质.pdf ETL知识.pdf ETL规范.pdf ETL设计说明书.pdf ETL面试题.pdf 一种标准的ETL_的设计思想...

    informatic ETl流程

    ### Informatic ETL 流程解析 #### 一、Informatica ETL 简介 Informatica 是一款广泛应用于企业数据集成领域的软件工具,尤其在ETL(Extract, Transform, Load)过程中扮演着极其重要的角色。ETL过程是指从源系统...

    数据仓库ETL建设宝典

    ETL测试确保数据的正确性和完整性,包括源系统验证、转换规则验证、目标系统验证和性能测试。 9. **监控和调度**: ETL过程的监控和调度是保证ETL流程稳定运行的关键。工具如Airflow、Azkaban和Control-M可以帮助...

    ETL实例,各种抽取更新小例子

    9. **ETL测试**:为了确保ETL流程的正确性,需要编写测试用例,模拟不同场景进行测试。这可能包括单元测试、集成测试和系统测试。 10. **监控与报警**:ETL流程运行过程中,需要实时监控性能指标和错误,设置适当的...

    etl工具箱 中文版

    2. **设计**:创建ETL流程图,定义数据转换规则。 3. **开发**:使用工具箱构建和配置ETL作业,编写转换逻辑。 4. **测试**:在生产环境之外验证ETL流程,确保数据质量和准确性。 5. **部署**:将ETL作业上线,定期...

    数据仓库ETL资料(全)

    包括定期进行数据质量检查、实现灵活的ETL设计以适应变化、监控和日志记录以追踪问题、以及自动化测试等。 9. **大数据与ETL** 在大数据环境下,传统的ETL可能无法满足高并发、大规模数据处理的需求,因此出现了...

    ETL.rar_etl_etl如何使用

    4. 编写和测试ETL脚本,确保数据转换正确无误。 5. 配置调度,决定ETL任务何时运行。 6. 监控ETL执行,记录日志,处理异常和错误。 7. 对加载到目标系统后的数据进行验证,确保数据质量。 了解并熟练掌握ETL,对于...

    ODI Getting Started with an ETL Project

    5. **开发和测试**:编写具体的 ETL 脚本,进行单元测试和集成测试,确保数据正确无误。 6. **部署和监控**:将 ETL 流程部署到生产环境中,并设置监控机制,确保数据处理过程稳定可靠。 #### 六、注意事项 1. **...

    使用PDI构建开源ETL解决方案

    数据测试是ETL流程中的关键环节。在PDI中,可以编写测试用例,确保从源系统中提取的数据准确无误。这包括数据质量检查,如完整性、一致性验证,以及错误处理机制。测试环境应该尽可能模拟生产环境,以便在实际部署前...

    ETL-页面二次开发

    Kettle是由Pentaho公司提供的一个强大且灵活的数据集成工具,它允许用户通过图形化的界面来设计、测试和执行数据转换。**PDI**的核心在于其工作流和转换设计,它使用了元数据驱动的方法,使得非程序员也能轻松上手。...

    ETL.rar_Fun_ Fun_ Fun_etl

    "etl pictor is not used please to test this upload fun"这句话可能暗示这个RAR压缩包里的内容不是标准的ETL工具或软件,而是一种测试或演示性质的资源,可能是通过图像(GIF)来生动展示ETL流程。 ETL的提取...

    ETL主要的开发

    2. **设计与规划**:根据需求设计 ETL 流程图,规划数据流向及处理逻辑。 3. **工具选择**:选择合适的 ETL 工具,如 Informatica、Talend 或自定义脚本等。 4. **编码与实现**:编写具体的 ETL 脚本或程序,实现...

    ETL数据抽取使用

    3. **构建ETL流程**:从“核心对象”中选择“表输入”、“文本文件输出”等组件,并通过鼠标拖拽的方式将其放置于设计区域。使用Shift键辅助连接各个组件,形成数据流。 - **表输入**:用于从数据库中读取数据。 ...

    kettle下载-一款免费开源ETL工具

    这个版本包含了Spoon客户端以及其他必要的运行时组件,可以用于设计、测试和运行ETL流程。用户只需解压后按照指引进行安装,即可开始使用这款强大的工具进行数据整合工作。 总之,Kettle作为一款免费开源的ETL工具...

    Clover DX ETL

    在IT领域,尤其是在数据处理与集成方面,Clover DX ETL工具因其强大的功能而备受推崇。根据提供的文件信息,我们将围绕“Clover DX ETL”这一主题,详细探讨其核心功能、应用场景以及如何通过该工具实现大规模设计和...

Global site tag (gtag.js) - Google Analytics