跳到主要内容

TPCDS-1TB

进行 TPC-DS 1TB 测试(Scale Factor = 1000)通常被视为衡量一个数据仓库或分析引擎是否具备“生产环境准入资格”的基准线。

测试环境

  • 硬件:5台物理机,单机64C512G。其中3个计算节点(DataNode\NodeManger\DorisBE),2个NameNode节点。
  • 软件:HiDataPlus3.3.2.0-013,可以参考组件版本
  • JDK:全部使用JDK8

测试方法

(1) 数据生成

使用Hive3和Hive4生成10TB数据集,通过Hive3生成表统计信息。Doris需要单独生成独有的统计信息。

(2) 各组件数据源

  • Hive3:Hive3数据库表
  • Spark3:Hive3数据库表
  • Doris2:Hive3数据库表,对于Doris来说,是外表。没有转存为内表。
信息
  • Doris的内表性能是比外表性能更好很多,但是我们的测试的首要目标是减少数据迁移,为数据不动为前提,所以使用Doris外表。 Doris需要生成其内部的统计数据,不然执行计划不佳,导致大量查询报错。
  • Spark使用Kyuubi+Server[One engine per cluster]模式,类似Spark Thrift Server,这种模式隔离性并不太好,权限管理要求高,实际使用场景偏少,但是执行速度最快,其他模式的性能会有不同程度的下降。 我们测试中选择这种最快的模式是为了充分对比Spark的极限性能,正视竞品。

(2) 测试执行

  • 测试独立性:执行每个组件测试,集群上没有其他作业执行。
  • 单次执行:并发度为1,顺序执行,连续执行3次,取执行总时间最长数据。
  • 并发执行:并发度分别为5、10、15、20,每种并发依次执行,取每次并发执行中的执行总时间最长数据。

测试结果

组件/并发HivePlus(Hive3)Spark3Doris2Hive3
并发1311052929898511
并发5642522595320121696
并发101312641326资源不足导致失败较多39321
并发152085153181资源不足导致失败较多51805
并发202632471454资源不足导致失败较多69456

测试结论

  • Doris2:在1TB小规模数据集上,Doris之类的MPP数据库优势明显。但是并发较多时,失败率较高。
  • Spark3:HivePlus在所有测试场景都明显优于Spark3。
  • Hive3: HivePlus在所有测试场景都明显优于Hive3。