- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ETL测试方法
一、ETL测试方法论
根据ETL各个阶段的不同特点,可以将ETL测试分为:物理数据测试和逻辑数据测试。
物理数据测试:是指纯粹从技术上保证数据的有效性,与业务无关。
逻辑数据测试:是从业务逻辑上,对原始指标以及最终产出的业务指标之间的逻辑平衡性监控。通过这些监控,能让底层etl技术人员第一时间的发现数据问题并且解决问题,同时也能根据这些监控提前知道可能产生的结果,为后续产生的业务分析报告作出进一步的修正,从而保证数据仓库的数据的是有效的是能真正反应事实的。(引用adolph)
在ETL测试过程中,根据实际情况可以将ETL的这些环节拆分或组合成多个测试面,根据不同的测试面进行不同重点的测试。目前可以将ETL环节拆分成以下4个测试面:
源数据-odl、odl-adl、idl-adl、源数据-adl测试面,
其中源数据-bdl侧重物理数据测试,bdl-adl侧重逻辑数据测试。
各个测试面的关注点如下:
源数据到odl的测试
主要关注以下几个方面(侧重物理数据测试):
对ETL抽取方案的测试。
首先是抽取方案稳定性,如果源体系表结构有改变,需要保证ETL抽取方案不变或者微变。
其次数据传送接口方案合理性。源系统以何种形式把数据提供给目标系统,源系统推送或者目标系统主动抽取。数据日期、数据大小、记录数、增量or全量。
对于抽取策略的测试。
检测抽取策略的合理性。目前常用的抽取策略有全量抽取、增量抽取。对于增量抽取,捕捉变化的数据有如下几种:1)采用快照方式。需要业务系统建立insert,update,delete触发器。2)时间戳方式,在业务系统表建一个时间戳字段,一旦数据发生变化,则修改此字段。3)全表删除插入方式,每次ETL操作先将目标表数据删除,然后抽取。4)hash比对,是全表比对的一个扩展,通过计算主要业务字段的MD5校验码存入hash维表,通过与hash维表的比对进行抽取。5)日志表方式,跟进业务系统的日志表进行数据抽取。6)oracle变化数据捕捉,通过分析数据库自身日志判断变化的数据。
对转换规则的测试。
首先是数据格式的合法性。对于数据源中时间、数值、字符等数据的处理,是否符合数据仓库规则,是否进行统一的转换。
其次是值域的有效性。是否有超出维表或者业务值域的范围。
第三是空值的处理。是否捕获字段空值,或者需要对空值进行替换为其他含义值的处理。
第四是主键的有效性。主键是否唯一。
第五是乱码的检查。特殊符号或者乱码符号的护理规则。
第六是脏数据的处理。比如不符合业务逻辑的数据,数据孤岛。
加载策略的测试。
首先是加载策略的合理性。目前常用的加载策略有如下几种:1) trunctae and insert.直接清空目标表,然后把新的数据加载进去。2) append.先根据规则清除当天的记录,然后把当天的新数据追加进去。 3) update and insert.用新数据与目标表中的历史数据进行比较,有变化的则更新,新记录则直接插入到目标表中。
4) keep history change.保持历史的变化,通常是拉链记历史的方式实现。
2. 第二面是odl到adl的测试。主要关注以下几个方面(物理数据测试+逻辑数据测试):
对转换规则的测试。
首先是数据格式的合法性。对于数据源中时间、数值、字符等数据的处理,是否符合数据仓库规则,是否进行统一的转换。
其次是值域的有效性。是否有超出维表或者业务值域的范围。
第三是空值的处理。是否捕获字段空值,或者需要对空值进行替换为其他含义值的处理。
第四是主键的有效性。主键是否唯一。
第五是乱码的检查。特殊符号或者乱码符号的护理规则。
第六是脏数据的处理。比如不符合业务逻辑的数据,数据孤岛。
对delta测试。
Delta记录的是变化的数据,通过今天与昨天数据的比对找出变化的记录。
对拉链历史测试。
主要是检查是否存在断链的记录,生命周期是否交叉。
对数据趋势测试。
首先是数据趋势要趋于平稳,,即波动是否有规律,且波动范围在设定的阀值之间。关于阀值的设定不同的业务指标有不同的标准。
对业务逻辑测试。
根据业务规则验证业务正常流。
指标口径的一致性,如对于有效cookie的定义是否统一口径。
如从行业维度考察各个行业的上架产品数,需要注意区分行业以及上架产品的概念。各行业的LPV,根据平台的情况,各个行业的LPV大致的区间范围。
各行业的DPV,根据平台的情况,各个行业的DPV大致的区间范围。理论上LPVDPV。
根据业务规则验证业务异常流。
如上架产品数对于produc_id的异常处理,考虑行业不存在的情况等等。
程序编译是否通过,是否支持重复调度以及回滚。根据业务是否需要记历史。
验证记录平衡,从浏览明细表统计出的行业LPV,DPV根据业务是否平衡。
唯一性,目标表中行业维度是否
文档评论(0)