[原创] 浅谈ETL系统架构如何测试?

  来新公司已入职3个月时间,由于公司所处于互联网基金行业,基金天然固有特点,基金业务复杂,基金数据信息众多,基金经理众多等,所以大家可想一下,基民要想赚钱真不容易,首先你要在这么多基金中选一个靠谱的基金经理,想获得一份不错的基金收益,尤如大海捞针,其码我对这个没什么自信。

  闲话少说,哪么我们来看看ETL系统架构是咋回事,简单理解ETL就是将数据抽取,数据转换,数据加载的一个过程,其中每个公司都有不同业务,如下图所示:

上图展示了一个典型的ETL系统架构,其中ETL中间还多了一个数据清洗,碰到这样的系统,测试工作如何开展呢?我理下思路,列举一些目前我所在公司对这块的测试实践:

1、首先,必须要对ETL核心处理过程进行测试,要确保数据提取,转换,加载核心处理过程的正确性及完整性;

2、各业务需求点及规则验证是否被正常转化,如:我们要将系统抓取的一些非标的数据进行提取,转换后符合公司自己定义的算法,这块就比较重要,也是公司核心;

3、各业务需求点及规则对时间要求,性能是否可以满足,如:我司系统有这样的需求,对某基金经理,在任职期内,与其他基金经理的业务在10年,3年,1年等不同时间段的回报率等;

4、ETL的测试核心点是数据,诸如数据的准确性,完整性,正确性都应考虑,测试时尤其要多运用等价,边界及异常值等去检查验证,不过建议开发一些测试工具去支持,在实际测试工作中,经常发现数据源抓取的数据不是很完整,有些还是错的,这些都要在内部测试时,进行严谨的检查;

5、数据迁移测试,由于每次系统升级,不得不进行更新,这样会造成新旧数据有可能不一致,我们通常采用迁移一部分生产数据在测试环境,来进行检查验证;

6、数据扩展性容量测试,初期我们对这块重视不够,原以为数据量没哪么多,但经过一段时间积累,发现源数据是非常庞大,所以针对这块我们都会去预估,尽可能按照X10,X20倍等这样的方式进行测试评估。

  最后总结下ETL测试其实并不复杂,系统的架构也非常简单,容易理解,难在于测试数据的复杂性构建,数据兼容性,及数据的完整性,我们在测试时碰到的最头疼的问题,主要是这几种,当然最后提一句,ETL系统上线后,必须要有一个好的监控系统配合,否则真是灾难。

  

[原创] 浅谈ETL系统架构如何测试?的更多相关文章

  1. [原创]浅谈移动互联网App兼容性测试

    [原创]浅谈移动互联网App兼容性测试 今天要谈的话题,估计各位测试都有感受,移动互联网App兼容性测试,我们到底测试覆盖如何去挑选机型?具体移动App兼容性测试如何开展?是不是应引进像testin这 ...

  2. [原创]浅谈移动App安全测试

    [原创]浅谈移动App安全测试 移动互联网很火,就像当年互联网兴起一样,这几天和朋友在沟通交流,谈到一个话题,你们做金融App钱放在你们哪边安全不?会不会你们做的移动App不安全,让人盗了里面的资金, ...

  3. [原创]浅谈H5页面测试介绍

    [原创]浅谈H5页面测试介绍 目前移动互联网非常火热,除了各种App,H5也是非常热,由于H5跨平台,且版本更新容易,做为引流或获客是非常好的一种简单低成本平台:今天来谈谈H5页面测试都要测试什么? ...

  4. [原创]浅谈Web UI自动化测试

    [原创]浅谈Web UI自动化测试 Web UI自动化测试相信大家都不陌生,今天来谈谈这个,我最早接触自动化测试时大约是在2004年,2006年当时在腾讯财付通算是开始正式接触自动化测试,之所以是正式 ...

  5. 朱晔的互联网架构实践心得S2E6:浅谈高并发架构设计的16招

    朱晔的互联网架构实践心得S2E6:浅谈高并发架构设计的16招 概览 标题中的高并发架构设计是指设计一套比较合适的架构来应对请求.并发量很大的系统,使系统的稳定性.响应时间符合预期并且能在极端的情况下自 ...

  6. 【架构】浅谈web网站架构演变过程

    浅谈web网站架构演变过程   前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变.   该系统具备的功能:   用户模块:用户注册和管理 商品模块:商品展示和管 ...

  7. [原创]浅谈H5页面性能优化方法

    [原创]浅谈H5页面性能优化方法 前阶段公司H5页面性能测试,其中测试时也发现了一些性能瓶颈问题,接下来我们在来谈谈H5页面性能优化,仅仅是一些常用H5页面性能优化措施,其实和Web页面性能优化思路大 ...

  8. 浅谈C++三层架构

    浅谈C++三层架构 三层架构并不是MVC,MVC是一个很早就有的经典的程序设计模式,M-V-C分为三层,M(Model)-V(View)-C(Control). web开发中的三层架构是指:数据访问层 ...

  9. [原创]浅谈在创业公司对MVP的理解

    [原创]浅谈在创业公司对MVP的理解 目前自已所处的公司类似一个创业平台,我们内部会不断的去孵化不同方向的产品,产品经理经常谈到的一个词就是MVP,所以有必需要去了解下什么是MVP? 1 什么是MVP ...

随机推荐

  1. Flex 自定义 Zlert 组件!

    说明: 原生的 Alert.show 参数,要显示的按钮你只能 Alert.OK | Alert.Cancel 这样; 自定义 Zlert 参数跟原生的 差不多,按钮写法是这样写的: {"b ...

  2. 解决 phpmyadmin #2002 无法登录 MySQL 服务器

    将 “phpMyAdmin/libraries”文件夹下的config.default.php文件中的 $cfg['Servers'][$i]['host'] = 'localhost'; 修改为 $ ...

  3. Google Protocol Buffer的安装与.proto文件的定义(转)

    转自(https://www.cnblogs.com/yinheyi/p/6080244.html) 什么是protocol Buffer呢? Google Protocol Buffer( 简称 P ...

  4. phantomhs获取网页的高度

    function heheda() { window.setTimeout(function () { console.log("---------------------Capture O ...

  5. oracle数据库如何创建用户和角色,并给其赋权?

    一.创建用户并赋予权限 1.创建用户 create user wangxiangyu identified by wangxiangyu; 2.赋权 grant dba to wangxiangyu; ...

  6. LCT摘要

    介绍.用途 LCT是树链剖分中的一种,又叫实链剖分.动态树,常用于维护动态的树.森林. 维护方式 LCT并不直接维护原树,而是用一堆splay作为辅助树来维护.原树中的一条实链上的点在一棵splay中 ...

  7. Centos 6.9 安装Rabbitmq

    一.安装Rabbitmq 首先安装编译工具 yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel Er ...

  8. Linux 黑白界面显示

    2014年1月14日 15:47:47 不知道别人怎么看,反正我觉得黑白配显示很方便阅读 命令: ls 脚本: ~/.bashrc 指令: alias ls='ls --color=never' 命令 ...

  9. javascript-词法分析解析

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. jira ao UpgradeTask

    插件发布到市场后,后续版本迭代的过程中,可能会对ao实体类的字段作添加或删除,或者要将某一字段的值映射解析到另一字段上. 本来这个工作,可以在插件启动的时候,在实现了com.atlassian.sal ...