一些关于大数据测试的理解

大数据是什么

指的是一般单机无法处理的海量数据级,因此,对于此类的数据集,我们需要利用一些大数据处理的框架、工具,完成基于集群的数据处理

大数据测试是什么

以下描述的都是个人对离线数据测试的看法

大数据测试是对系统中生成处理产出应用数据的全流程进行测试;它具体表现于两种特点:

  • 复杂的团队协作:数据链条中,依赖多协作方
  • 复杂的技术依赖:数据流的逻辑过程,综合地利用了采集/传输/计算/存储等数据架构技术、机器学习等数据算法技术

对于常规的数据流系统,抽象层面包含两类元对象:
数据节点(node):数据存储的对象,一般有可分片对象(hdfs、ftp、NFS、Mysql、Redis),不可分片的流对象(kafka)
数据处理程序(flow):指对数据节点数据进行计算的对象,此类对象将对数据进行加工,最终生成另外一个数据节点;
常见块处理程序如(hadoop、spark),流处理程序(spark-streaming、storm)

一种常见的数据系统主要表现为以下的拓扑形式
一些关于大数据测试的理解_第1张图片

大数据测试的流程

数据测试环境

  • 足够的存储设备和足够支撑测试的存储引擎,如Hive(类sql)、hbase(k-v)、es、redis、kafka。。。
  • 足够的计算集群、hadoop、spark等(核心资源cpu、mem)
  • 算子基础环境(java、python、其他依赖。。)

多个测试环境怎么管理的问题
不懂,mark
一些思路,具体还得了解下上面那些引擎。。。

  1. 物理隔离、集群隔离;
  2. 逻辑隔离,存储通过账号隔离;

大数据测试流程

功能测试:

  1. 准备数据,从线上引流(copy)、线下构造、上游产出
  2. 对数据正确性验证
  3. 加载进系统并计算,关注处理过程是否正确,是否异常
  4. 数据写入目标存储引擎
  5. 验证产出数据是否正确

性能测试:

  1. 流程同功能测试
  2. 通过外部探针,检测对资源消耗、每个batch 或者 一次stream的计算时间

大数据测试验证些什么

应用层面上测试–>功能测试:

  1. 数据预处理验证,即存储在node内的数据是否可以正常加载至系统
  2. 数据完整性(数据一致性、数据完整性、数据可用性)验证
  3. 数据是否可以成功写入目标系统

架构层面上的测试->性能测试:

  1. 数据读写效率验证
  2. 数据处理效率验证

参考资源:
数据存储的对象<这个我需要好好阅读下,针对分块处理和流处理进行了说明:streaming101>

数据质量保障的一些开源方案:https://zhuanlan.zhihu.com/p/41679658

你可能感兴趣的:(一些关于大数据测试的理解)