一、ETL 测试方法论 根据 ETL 各个阶段的不同特点,可以将 ETL 测试分为:物理数据测试和逻辑数据测试
物理数据测试:是指纯粹从技术上保证数据的有效性,与业务无关
逻辑数据测试:是从业务逻辑上,对原始指标以及最终产出的业务指标之间的逻辑平衡性监控
通过这些监控,能让底层 etl 技术人员第一时间的发现数据问题并且解决问题,同时也能根据这些监控提前知道可能产生的结果,为后续产生的业务分析报告作出进一步的修正,从而保证数据仓库的数据的是有效的是能真正反应事实的
(引用 adolph) 在 ETL 测试过程中,根据实际情况可以将 ETL 的这些环节拆分或组合成多个测试面,根据不同的测试面进行不同重点的测试
目前可以将 ETL 环节拆分成以下 4 个测试面: 源数据->odl、odl->adl、idl->adl、源数据->adl 测试面, 其中源数据->bdl 侧重物理数据测试,bdl->adl 侧重逻辑数据测试
各个测试面的关注点如下: 1
源数据到 odl 的测试 主要关注以下几个方面(侧重物理数据测试): 对 ETL 抽取方案的测试
首先是抽取方案稳定性,如果源体系表结构有改变,需要保证 ETL 抽取方案不变或者微变
其次数据传送接口方案合理性
源系统以何种形式把数据提供给目标系统,源系统推送或者目标系统主动抽取
数据日期、数据大小、记录数、增量 or 全量
对于抽取策略的测试
检测抽取策略的合理性
目前常用的抽取策略有全量抽取、增量抽取
对于增量抽取,捕捉变化的数据有如下几种:1)采用快照方式
需要业务系统建立 insert,u pdate,delete 触发器
2)时间戳方式,在业务系统表建一个时间戳字段,一旦数据发生变化,则修改此字段
3)全表删除插入方式,每次 ETL 操作先将目标表数据删除,然后抽取
4)hash 比对,是全表比对的一个扩展,