与传统测试区别
功能测试
数据质量
- 主要包括4种测试方法
常用的功能测试方法
数据约束检查
- 如数据类型、长度、索引、主键等是否符合要求
数据存储检查
- 是否需要压缩文件形式存储
- hive表类型是否合理(内外部表、分区、分桶表)
- 代码中读取、写入文件目录是否正确
SQL文件检查
开发规范检查。一般公司都有自己的规范,如hiveql中的:
- 注释
- 字段,不行用*代替全部
- …..
SQ语法检查
- 合理使用insert into、insert overwrite、order by、group by等
数据处理逻辑验证
- 脏数据处理是否符合预期
- 去重处理
shell脚本测试
- 测试jar包是否引用正确
- mapper、reducer文件、mapreduce依赖文件等路径、运行配置参数是否合理
- 我对shell不熟悉,一般采用python
调度任务测试
- 是否支持重跑
- 依赖层次是否合理
- 任务是否在规定时间完成等
性能测试
主要由六种测试:基准测试、并发测试、负载测试、压力测试、容量测试、稳定性测试
性能测试步骤
性能测试案例
-
以第六章用户行为分析平台为例子,采用YCSB工具,对平台底层Kudu进行性能测试
-
YCSB 是雅虎开源的性能测试工具,对NoSql产品进行测试和评估,如HBase、MongoDB等
测试场景
测试结果
大数据基准测试
对大数据框架、大数据平台、工具的出现进行基准测试,测试步骤分为:
-
数据准备
-
负载选择
大数据基准测试
对大数据框架、大数据平台、工具的出现进行基准测试,测试步骤分为:
-
数据准备
-
负载选择
- 指标度量
基准测试工具
大数据ETL测试
ETL测试类型
元数据测试
- 验证表定义是否符号数据模型和应用程序的设计规范,包括对数据类型、数据长度、索引和约束等
数据完整性测试
- 目的是验证是否已将预期数据从源加载到目标中,主要测试:比较源和目标之间的计数,如最大、最小、总和、均值和实际数据量
数据转换测试
- 白盒测试。用sql或pl/sql对数据转换,用转换后的数据与目标中数据比较
- 黑盒测试。外部界面方式造数据完成转换,用转换后的数据与目标中数据比较
增量ETL测试
目的是验证源上的更新能否正确加载到目标系统中
ETL集成测试
如下几个步骤:
- 在源系统中,设置测试数据
- 执行ETL过程把数据加载到目标中
- 查看或处理目标系统中数据
- 验证数据和使用该数据的应用程序的功能
ETL性能测试
略
ETL测试场景
实时数据ETL和测试
- 实时数据一般指分钟级别以下,通常包括实时计算、存储、展示和分析等。
- 原始数据:可以理解为上游原始数据。对于整个上层消费应用,除数据本身以外,其他都是“黑盒,即不可见。目前,对于接入的数据源,常见的提供数据的方式人 Kafka、MQ 等。
- 实时数据处理:这是整个数据流转路径的核心,负责根据业务需求对原始数据进行理并转发。常见的处理实时数据的应用框架有Flink、Storm和SparkStreaming等。
- 数据存储:用于保存处理后的数据。对于业务功能,可以在这里获取需要使用的数据。在这里,我们一般使用基于内存的key-value数据库 Redis,以及列式数据医。 ClickHouse、MongoDB和HDFS等。另外,我们可以将数据转发至另一个数握 通道。
- 数据应用:数据的具体使用。在这里,我们可以对数据进行业务层面的处理、数据的可视化展示。
离线数据ETL和测试
- 离线数据一般采用T+1模式,即每天凌晨处理前一天的数据,一般采用Sqoop,datax,Flume和MapReduce等
- 对于不同的数据仓库结构,有不同的测试点
大数据ETL测试工具
- iCDQ
- Talend
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理