[原创] 浅谈ETL系统架构如何测试?
[原创] 浅谈ETL系统架构如何测试?
来新公司已入职3个月时间,由于公司所处于互联网基金行业,基金天然固有特点,基金业务复杂,基金数据信息众多,基金经理众多等,所以大家可想一下,基民要想赚钱真不容易,首先你要在这么多基金中选一个靠谱的基金经理,想获得一份不错的基金收益,尤如大海捞针,其码我对这个没什么自信。
闲话少说,哪么我们来看看ETL系统架构是咋回事,简单理解ETL就是将数据抽取,数据转换,数据加载的一个过程,其中每个公司都有不同业务,如下图所示:
上图展示了一个典型的ETL系统架构,其中ETL中间还多了一个数据清洗,碰到这样的系统,测试工作如何开展呢?我理下思路,列举一些目前我所在公司对这块的测试实践:
1、首先,必须要对ETL核心处理过程进行测试,要确保数据提取,转换,加载核心处理过程的正确性及完整性;
2、各业务需求点及规则验证是否被正常转化,如:我们要将系统抓取的一些非标的数据进行提取,转换后符合公司自己定义的算法,这块就比较重要,也是公司核心;
3、各业务需求点及规则对时间要求,性能是否可以满足,如:我司系统有这样的需求,对某基金经理,在任职期内,与其他基金经理的业务在10年,3年,1年等不同时间段的回报率等;
4、ETL的测试核心点是数据,诸如数据的准确性,完整性,正确性都应考虑,测试时尤其要多运用等价,边界及异常值等去检查验证,不过建议开发一些测试工具去支持,在实际测试工作中,经常发现数据源抓取的数据不是很完整,有些还是错的,这些都要在内部测试时,进行严谨的检查;
5、数据迁移测试,由于每次系统升级,不得不进行更新,这样会造成新旧数据有可能不一致,我们通常采用迁移一部分生产数据在测试环境,来进行检查验证;
6、数据扩展性容量测试,初期我们对这块重视不够,原以为数据量没哪么多,但经过一段时间积累,发现源数据是非常庞大,所以针对这块我们都会去预估,尽可能按照X10,X20倍等这样的方式进行测试评估。
最后总结下ETL测试其实并不复杂,系统的架构也非常简单,容易理解,难在于测试数据的复杂性构建,数据兼容性,及数据的完整性,我们在测试时碰到的最头疼的问题,主要是这几种,当然最后提一句,ETL系统上线后,必须要有一个好的监控系统配合,否则真是灾难。
[原创] 浅谈ETL系统架构如何测试?的更多相关文章
- [原创]浅谈移动互联网App兼容性测试
[原创]浅谈移动互联网App兼容性测试 今天要谈的话题,估计各位测试都有感受,移动互联网App兼容性测试,我们到底测试覆盖如何去挑选机型?具体移动App兼容性测试如何开展?是不是应引进像testin这 ...
- [原创]浅谈移动App安全测试
[原创]浅谈移动App安全测试 移动互联网很火,就像当年互联网兴起一样,这几天和朋友在沟通交流,谈到一个话题,你们做金融App钱放在你们哪边安全不?会不会你们做的移动App不安全,让人盗了里面的资金, ...
- [原创]浅谈H5页面测试介绍
[原创]浅谈H5页面测试介绍 目前移动互联网非常火热,除了各种App,H5也是非常热,由于H5跨平台,且版本更新容易,做为引流或获客是非常好的一种简单低成本平台:今天来谈谈H5页面测试都要测试什么? ...
- [原创]浅谈Web UI自动化测试
[原创]浅谈Web UI自动化测试 Web UI自动化测试相信大家都不陌生,今天来谈谈这个,我最早接触自动化测试时大约是在2004年,2006年当时在腾讯财付通算是开始正式接触自动化测试,之所以是正式 ...
- 朱晔的互联网架构实践心得S2E6:浅谈高并发架构设计的16招
朱晔的互联网架构实践心得S2E6:浅谈高并发架构设计的16招 概览 标题中的高并发架构设计是指设计一套比较合适的架构来应对请求.并发量很大的系统,使系统的稳定性.响应时间符合预期并且能在极端的情况下自 ...
- 【架构】浅谈web网站架构演变过程
浅谈web网站架构演变过程 前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变. 该系统具备的功能: 用户模块:用户注册和管理 商品模块:商品展示和管 ...
- [原创]浅谈H5页面性能优化方法
[原创]浅谈H5页面性能优化方法 前阶段公司H5页面性能测试,其中测试时也发现了一些性能瓶颈问题,接下来我们在来谈谈H5页面性能优化,仅仅是一些常用H5页面性能优化措施,其实和Web页面性能优化思路大 ...
- 浅谈C++三层架构
浅谈C++三层架构 三层架构并不是MVC,MVC是一个很早就有的经典的程序设计模式,M-V-C分为三层,M(Model)-V(View)-C(Control). web开发中的三层架构是指:数据访问层 ...
- [原创]浅谈在创业公司对MVP的理解
[原创]浅谈在创业公司对MVP的理解 目前自已所处的公司类似一个创业平台,我们内部会不断的去孵化不同方向的产品,产品经理经常谈到的一个词就是MVP,所以有必需要去了解下什么是MVP? 1 什么是MVP ...
随机推荐
- java学习第03天(运算符、语句)
5.运算符 (1)算数运算符 //算数运算符:+ - * / %(取余) //++ --(自增,就是在原有数据基础上+1,再赋给原有数据) ///int x = 6370; //x = x/1000* ...
- 【配置】Spring Struts配置信息
- 联通-长春处,FDD和TDD宏站,数据业务接入时延期望值默认值应为80ms
有小坑 备注:若已经跑过V5.40.00_Alpha1_Baseline.sql或V5.30.02_Beta_TO_V5.40.00_Alpha1.sql的脚本,再次运行升级脚本修改不成功,需手动在数 ...
- 基于Consul的数据库高可用架构【转】
几个月没有更新博客了,已经长草了,特意来除草.本次主要分享如何利用consul来实现redis以及mysql的高可用.以前的公司mysql是单机单实例,高可用MHA加vip就能搞定,新公司mysql是 ...
- kibana提示"[illegal_argument_exception] mapper [hits] cannot be changed from type [long] to [integer]"
=============================================== 2019/1/30_第1次修改 ccb_warlock == ...
- Python学习系列之(二)图解Windows8.1下安装Django
一. 下载 去官网下载https://www.djangoproject.com/download/最新版,最新版本是1.6 二. 安装: 将下载下来的Django-1.6.tar.gz解压到D盘,接 ...
- opencv SVM多分类 人脸识别
上一篇介绍了OPENCV中SVM的简单使用,以及自带的一个二分类问题. 例子中的标签是程序手动写的,输入也是手动加的二维坐标点. 对于复杂问题就必须使用数据集中的图片进行训练,标签使用TXT文件或程序 ...
- enum 关键字
java.lang.Enum.java enum :枚举类型当你需要创建一个整型常量集,但是这些枚举值并不会必然地将其自身的取值限制在这个常量的范围之内,这种情况可以用枚举 package objec ...
- KnockoutJs学习笔记(八)
with binding用于创建一个新的绑定环境(binding context),包含with binding的元素的所有子元素都将处于指定的object的环境限定内. 下面是一个简单的使用with ...
- Spring中AOP实现
1.什么是SpringAOP 什么是aop:Aspect Oriented Programming的缩写,面向切面编程,通过预编译和动态代理实现程序功能的 统一维护的一种技术 主要功能:日志记录,性能 ...