TPCDS-10TB
10TB 是生产环境的一个起步门槛。通过这个量级的测试,更多是为了验证分布式数据库或计算引擎在高负载下的性能表现。
测试环境
- 硬件:26台物理机,单机64C512G。其中24个计算节点(DataNode\NodeManger\DorisBE),2个NameNode节点。
- 软件:HiDataPlus3.4.2.0-001,可以参考组件版本。
- JDK:使用JDK21。
测试方法
(1) 数据生成
使用Hive4生成10TB数据集,生成数据后,进行以下核对:
- 数据表行数:无差异。
- 文件个数:差异在1%以内。
- 统计信息:Hive4、Doris4分别生成。
(2) 各组件数据源
- Hive4:Hive4数据库表
- Spark4:Hive4数据库表
- Doris4:Hive4数据库表,对于Doris来说,是外表。没有转存为内表。
信息
Doris的内表性能是比外表性能更好,但是我们的测试的首要目标是减少数据迁移,为数据不动为前提,所以使用Doris外表。 Doris外表需要单独生成统计数据,不然执行计划可能出现不是最优的情况。
(2) 测试执行
- 测试独立性:执行每个组件测试,集群上没有其他作业执行。
- 单次执行:并发度为1,顺序执行,连续执行3次,取执行总时间最长数据。
- 并发执行:并发度分别为5、10、15、20,每种并发依次执行,取每次并发执行中的执行总时间最长数据。
测试结果
| 组件/并发 | HivePlus(Hive4) | Spark4 | Doris4 | Hive4 |
|---|---|---|---|---|
| 并发1 | 4725 | 7283 | 4223 | 25201 |
| 并发5 | 12311 | 13706 | 16332 | 未测试 |
| 并发10 | 18256 | 19212 | 查询超时较多 | 未测试 |
| 并发15 | 24233 | 31719 | 查询超时较多 | 未测试 |
| 并发20 | 29320 | 34512 | 查询超时较多 | 未测试 |
| 并发30 | 52320 | 执行失败较多 | 查询超时较多 | 未测试 |
结果分析
- Doris4:单次(并发1),HivePlus与其接近,但是并发增加,Doris性能明显下降,执行成功率也无法保证。这与MPP数据库的技术原理有关。
- Spark4:单次(并发1)、并发15、并发20方面,HivePlus优势明显;并发5、并发10方面,略好,这是后续努力提升的方向。
- Hive4:单次(并发1),执行总时间是HivePlus的5倍以上,并发测试执行过长,没有测试。HivePlus可以完全兼容HiveSQL,这是HivePlus的核心优势。
信息
据相关资料,Spark4较Spark3有30%的性能提升,Hive4未找到相关资料,因时间原因,目前只测试了Spark4的并发场景。