大数据是什么
指的是一般单机无法处理的海量数据级,因此,对于此类的数据集,我们需要利用一些大数据处理的框架、工具,完成基于集群的数据处理
大数据测试是什么
以下描述的都是个人对离线数据测试的看法
大数据测试是对系统中生成、处理、产出、应用数据的全流程进行测试;它具体表现于两种特点:
- 复杂的团队协作:数据链条中,依赖多协作方
- 复杂的技术依赖:数据流的逻辑过程,综合地利用了采集/传输/计算/存储等数据架构技术、机器学习等数据算法技术
对于常规的数据流系统,抽象层面包含两类元对象:
数据节点(node):数据存储的对象,一般有可分片对象(hdfs、ftp、NFS、Mysql、Redis),不可分片的流对象(kafka)
数据处理程序(flow):指对数据节点数据进行计算的对象,此类对象将对数据进行加工,最终生成另外一个数据节点;
常见块处理程序如(hadoop、spark),流处理程序(spark-streaming、storm)
一种常见的数据系统主要表现为以下的拓扑形式
大数据测试的流程
数据测试环境
- 足够的存储设备和足够支撑测试的存储引擎,如Hive(类sql)、hbase(k-v)、es、redis、kafka。。。
- 足够的计算集群、hadoop、spark等(核心资源cpu、mem)
- 算子基础环境(java、python、其他依赖。。)
多个测试环境怎么管理的问题
不懂,mark
一些思路,具体还得了解下上面那些引擎。。。
- 物理隔离、集群隔离;
- 逻辑隔离,存储通过账号隔离;
大数据测试流程
功能测试:
- 准备数据,从线上引流(copy)、线下构造、上游产出
- 对数据正确性验证
- 加载进系统并计算,关注处理过程是否正确,是否异常
- 数据写入目标存储引擎
- 验证产出数据是否正确
性能测试:
- 流程同功能测试
- 通过外部探针,检测对资源消耗、每个batch 或者 一次stream的计算时间
大数据测试验证些什么
应用层面上测试–>功能测试:
- 数据预处理验证,即存储在node内的数据是否可以正常加载至系统
- 数据完整性(数据一致性、数据完整性、数据可用性)验证
- 数据是否可以成功写入目标系统
架构层面上的测试->性能测试:
- 数据读写效率验证
- 数据处理效率验证
参考资源:
数据存储的对象<这个我需要好好阅读下,针对分块处理和流处理进行了说明:streaming101>
数据质量保障的一些开源方案:https://zhuanlan.zhihu.com/p/41679658