抛砖引玉----个人大数据测试小结

最近一直想在大数据方面做更为全面的测试,但是涉及这一块目前资料较少,所以抛砖引玉,希望有同行互相交流

 

1.ETL测试

    ETL, Extract-Transform-Load 的缩写,将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程.

   ETL工具较多,用过的是informatica.它从目标表抽取数据加载到结果表 hive<-->数据库.

   测试思路:

     a.测试抽取的符合条件的数据总量;

     b.报表字段类型转换测试;

     c.报表字段特殊值测试(空,null,复合型字符);

     d.根据sql过滤条件进行造数测试;

     e.根据业务场景进行造数测试;

     f.开发创建的报表/报表字段和测试报表进行对比测试;

     g.开发条件过滤sql初步遍历看有无明显语法错误测试;

     h.报表拉数耗费时间测试;

     j.报表大批量数据拉取性能测试.

用过informatica的同学都知道它有四个界面段,基于开发写的sql,报表字段,数据库连接串,errorlog都能从里面获取到信息,建议当工具拉数报错时,自己能更改的错误自己就直接改了(当然事后别忘记告诉开发更新)。

 

2.Linux环境的shell脚本测试.

   一般shell脚本都是基本 数据库-->hive-->数据库的过程,也就是 hive的一个import 和 export的过程,需要涉及的知识面:基本的linux命令,shell脚本命令,hivesql,hdfs命令.

     因为shell脚本测试有些时候是基于需要直接更改报表在hdfs路径下的数据文件,本人是建议测试完全掌握这一块的,毕竟公司部门的shell脚本一般都是有一个统一格式的.

     测试思路:

      1.遍历shell脚本查看开发输出的脚本是否正确(命名规范,脚本内容,调用函数,日志打印,异常检查机制);

2.遍历oracle/mysql/hive等建表语句(包含报表名称,报表字段,报表hdfs路径,索引创建,分区创建);

3.import/export报表数据总量;

4.import/export报表数据的脚本运行时间;

5.数据库--hive 的数据类型转换;

6.历史数据报表的历史数据量;

7.一些简单的sql语句优化..

  hive报表主要涉及的都是一些数据传输过程,然后在hive里面使用sql进行一些逻辑计算,最后得出结果再把数据传输出去,所以主要关注点都在hive这一块。

 

3.kafka/scala

这个是目前正在做的项目,涉及到的kafka以及scala语言均需要补充新知识,scala语言相对好一点,是类似sql的一种写法,主要是在kafka中进行计算然后进行一个接口数据传输,从测试角度来看,涉及到:需求确定的逻辑计算方式 ,需求确定的各字段名称,需求确定的取数范围(标识,时间,状态),考虑报表历史数据量大小对性能的影响,基于服务器大小对各报表历史数据保存时间的确定,json串数据传输.

  (私人讨论总结,请转载注明出处,谢谢!)

 性能方面,个人感觉服务器大小配置会很大程度上影响到数据的传输速度,数据的处理速度,也就是说,客户看到需要的数据的时间会根据服务器的配置来进行延长或缩短,而作为测试,目前一直思考的也是这块的,如何在排除服务器配置的情况下,能更好的测试处代码计算的性能是一直在想的问题,因为这一块也没找到比较有用的对比资料以及参考指标.

⼤数据应⽤测试经验总结 ⼤数据应⽤测试经验总结 ⼤数据应⽤测试过程与传统的web系统有较⼤的不同,⼤数据应⽤测试通常会分为web侧和ETL侧测试,web侧基本就是功能测试,⽽ETL(Extracting-Transfroming- Loading)测试主要指从任何外部系统提取、转换、载⼊数据到⽬标地。从底层数据采集、数据处理、到上层应⽤展现。 ⼀、从技术架构设计上,分为以下⼏块: 1. 数据采集:采集使⽤java和python程序从⽂件服务器下载⽂件,并把⽂件写⼊kafka、Hbase和Hive、Mysql中; 2. 计算引擎:使⽤Hive on Tez计算引擎实现ETL跑批任务;使⽤spark streaming实现实时计算;使⽤Phoenix做前台交互式查询。 3. 数据存储:使⽤Kafka、Hive、Hbase、MySQL满⾜各层次存储技术需求。 4. 任务调度:使⽤Quartz实现作业调度及管理。 5. 监控接⼝:使⽤Kafka、⽂件接⼝对接统⼀监控平台。 6. 数据可视化:使⽤JQuery、Echarts、Easy UI等技术实现图表、表格展⽰;使⽤Apache POI实现excel、CSV的导⼊导出;使⽤Log4J记录⽇志;使⽤Spring框架实现 页⾯、服务、数据的集成管理;使⽤DBCP实现数据库连接池。 7. 数据模型层次说明 ODS:贴源层,存储原始数据,数据采集直接写⼊; DWD:数据仓库明细层,存储从源数据抽去过来的明细数据; DW:数据仓库层,保存经过数据降维汇聚的计算后⽣成的汇总数据; DM:数据集市层,满⾜特定功能⽽建⽴的各种数据集市。 1. 数据处理过程说明 1. 数据采集模块从采集机采集相关业务数据; 2. 数据采集模块定期把原始数据导⼊Hive库中的ODS层相关表中;实时数据及时写⼊kafka提供给spark streaming处理;公参数据写⼊mysql中。 3. ETL模块从ODS层相关表中抽取数据到DWD层; 4. ETL模块根据轻度汇总要求进⾏数据轻度汇总操作,并把汇总后的数据放到DW层中; 5. ⼀些功能所需数据⽆法从轻度汇总表计算出来,需要从DWD中原始表进⾏汇总; 6. ETL模块从DW层获取轻度汇总数据,根据各业务功能要求进⼀步汇总数据,形成DM层数据; 7. 即席查询数据从Hive关联到Hbase中; 8. Phoenix关联到HBase中,供页⾯查询使⽤; 9. 部分ETL模块数据把Hive中汇总后数据导⼊MySQL中,供模型建模使⽤; ⼆、Hadoop运⾏: mapreduce机制: 常⽤命令: 功能 功能 命令 命令 查看⽬录 hadoop fs -ls dir 上传⽂件 hadoop fs -put ${local file} ${hdfs file} 创建⽬录 hadoop fs -mkdir ${dirname} 获取⽂件 hadoop fs -get ${hdfs file} ${local file} 删除多个⽂件或⽬录 hadoop fs -rm ${hdfs file} ... hadoop fs -rm -r ${hdfs file}... 复制⽂件 hadoop fs -cp ${hdfs file} ${hdfs file} 移动⽂件 hadoop fs -mv ${hdfs file} ${hdfs file} 三、hive和hbase⽐较: Hive(⾮数据库) Hbase(数据库) 适⽤场景 ⽤于对⼀段时间内的数据进⾏分析查询,离线批处理 ⼤数据的实时查询 特点 1、⼀种类SQL的引擎,运⾏MapReduce任务; 2、查询⼀般是全量查询,时间较长,可通过分区来优化; 3、基于⾏查询,定义时每⾏有固定列数据,每列数据固定⼤⼩; 4、操作:不⽀持更新操作 1、⼀种在Hadoop之上的NoSQL型Key/Value数据库; 2、查询是通过特定语⾔编写,可通过Phonenix实现类SQL功能; 3、基于列查询,可定义各种不同的列,每列数据⼤⼩不固定; 四、hive常⽤操作 hive 基础操作 基础操作 说明 说明 查看数据 库 show databases 使⽤数据 库 use DbName 删除数据 库 drop database if exists DbName CASCADE 如果数据库不为空,删除会报错,加上cascade可忽略 查看表 show tables in DbName ; show tables like 'h*' 创建表 内部表:CREATE TABLE page_view if not exists(viewTime INT, userid BIGINT, page_url STRING, referrer_url STRIN
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值