文章转载自:野生数据人
分析型数据库的性能比较,最终还是要回到真实 Query 和实际运行数据。
我们基于 Apache Doris 4.2 与 StarRocks 4.1.1,在相同计算资源和相同测试协议下进行了新一轮 1TB 规模性能测试。目前已经完成 SSB、SSB-Flat 和 TPC-H 三组测试(TPC-DS 测试仍在进行中,后续将单独公布)。
从已经完成的结果来看:
| Benchmark | StarRocks | Doris | Doris 查询总耗时变化 |
|---|---|---|---|
| SSB SF1000 | 19,566 ms | 14,779 ms | 降低 24.5% |
| SSB-Flat SF1000 | 14,474 ms | 12,930 ms | 降低 10.7% |
| TPC-H SF1000 | 89,335 ms | 67,974 ms | 降低 23.9% |
在目前完成的 48 条 Query 中,Doris 有 35 条 Query 耗时更低,StarRocks 有 13 条 Query 耗时更低。
需要说明的是,我们没有试图用单个数字概括所有场景。不同 Query 的执行特征不同,因此除了 Benchmark 总耗时之外,更值得关注的是 Query 级别的表现和差异。
测试环境
本次测试使用相同的 FE/BE 节点数量和硬件规格,并遵循相同的测试执行协议。
| 项目 | 配置 |
|---|---|
| 对比版本 | Doris 4.2 / StarRocks 4.1.1 |
| Benchmark | SSB SF1000 / SSB-Flat SF1000 / TPC-H SF1000 / TPC-DS SF1000 |
| FE | ecs.r9i.large-2c16g300 × 1 |
| FE 规格 | 2 vCPU / 16 GiB / 300 GB |
| BE | ecs.g9i.8xlarge-32c128g300 × 3 |
| BE 规格 | 32 vCPU / 128 GiB / 300 GB |
| 测试原则 | 两侧保持相同节点数量、硬件规格及测试执行协议 |
SSB:Doris 总查询耗时降低 24.5%
在 SSB SF1000 测试中,13 条 Query 里有 10 条 Doris 查询耗时更低。
| Query | StarRocks | Doris | 差异 |
|---|---|---|---|
| q1.1 | 367 | 463 | SR快21% |
| q1.2 | 366 | 362 | Doris快1% |
| q.3 | 366 | 381 | SR快4% |
| q2.1 | 2484 | 1374 | Doris快45% |
| q2.2 | 1943 | 1531 | Doris快21% |
| q2.3 | 1920 | 1258 | Doris快34% |
| q3.1 | 3329 | 2615 | Doris快21% |
| q3.2 | 1832 | 1589 | Doris快13% |
| q3.3 | 1623 | 589 | Doris快64% |
| q3.4 | 569 | 372 | Doris快35% |
| q4.1 | 3405 | 2883 | Doris快15% |
| q4.2 | 832 | 791 | Doris快5% |
| q4.3 | 530 | 571 | SR快7% |
| 总计 | 19566 | 14779 | Doris快24% |
StarRocks 完成全部 Query 共耗时 19,566 ms,Doris 为 14,779 ms,Doris 总查询耗时降低约 24.5%。
差异比较明显的 Query 包括:
-
Q3.3:1,623 ms → 589 ms,耗时降低 63.7%
-
Q2.1:2,484 ms → 1,374 ms,耗时降低 44.7%
-
Q3.4:569 ms → 372 ms,耗时降低 34.6%
-
Q2.3:1,920 ms → 1,258 ms,耗时降低 34.5%
与此同时,StarRocks 在 Q1.1、Q1.3 和 Q4.3 上耗时更低,其中差距最大的是 Q1.1。
从 Query 分布来看,Doris 的优势并不是由单个 Query 拉动:Q2、Q3 两组中的多个 Query 都获得了较明显的延迟下降。
SSB-Flat:宽表场景总耗时降低 10.7%
我们进一步测试了 SSB-Flat。
相比标准 SSB 的星型模型,SSB-Flat 将数据组织为宽表,可以减少运行时的关联操作,也是 OLAP 系统中非常典型的一类数据建模方式。
这组测试中,Doris 仍然有 10/13 条 Query 耗时更低。
| Query | StarRocks | Doris | 差异 |
|---|---|---|---|
| q1.1 | 397 | 381 | Doris快4% |
| q1.2 | 355 | 286 | Doris快19% |
| q1.3 | 621 | 275 | Doris快56% |
| q2.1 | 1741 | 1350 | Doris快22% |
| q2.2 | 1875 | 1110 | Doris快41% |
| q2.3 | 1227 | 1145 | Doris快7% |
| q3.1 | 1864 | 1925 | SR快3% |
| q3.2 | 2016 | 1798 | Doris快11% |
| q3.3 | 952 | 862 | Doris快9% |
| q3.4 | 325 | 297 | Doris快9% |
| q4.1 | 2155 | 2493 | SR快14% |
| q4.2 | 497 | 461 | Doris快7% |
| q4.3 | 449 | 547 | SR快18% |
| 总计 | 14474 | 12930 | Doris快11% |
StarRocks 总耗时为 14,474 ms,Doris 为 12,930 ms,整体降低约 10.7%。
其中:
-
Q1.3:621 ms → 275 ms,耗时降低 55.7%
-
Q2.2:1,875 ms → 1,110 ms,耗时降低 40.8%
-
Q2.1:1,741 ms → 1,350 ms,耗时降低 22.5%
-
Q1.2:355 ms → 286 ms,耗时降低 19.4%
StarRocks 则在 Q3.1、Q4.1 和 Q4.3 上耗时更低。
一个比较有意思的现象是,相比标准 SSB,进入 Flat 宽表模式后,两套系统的整体性能差距有所缩小。但 Doris 仍然在多数 Query 上取得更低的查询耗时,并最终获得约 11% 的总耗时优势。
TPC-H:22 条 Query 中 15 条 Doris 耗时更低
TPC-H SF1000 对复杂分析查询提出了更高要求,包括多表关联、聚合、子查询以及不同选择率的过滤条件。
在这组测试中:
StarRocks 22 条 Query 总耗时为 89,335 ms,Doris 为 67,974 ms,Doris 总查询耗时降低约 23.9%。
| Query | StarRocks | Doris | 差异 |
|---|---|---|---|
| q1 | 8371 | 8302 | Doris快1% |
| q2 | 634 | 573 | Doris快10% |
| q3 | 3254 | 2678 | Doris快18% |
| q4 | 1964 | 913 | Doris快54% |
| q5 | 6645 | 2901 | Doris快56% |
| q6 | 381 | 407 | SR快6% |
| q7 | 6161 | 2189 | Doris快64% |
| q8 | 5201 | 2738 | Doris快47% |
| q9 | 14135 | 8145 | Doris快42% |
| q10 | 3894 | 2394 | Doris快39% |
| q11 | 604 | 623 | SR快3% |
| q12 | 662 | 740 | SR快11% |
| q13 | 8424 | 5795 | Doris快31% |
| q14 | 811 | 560 | Doris快31% |
| q15 | 1408 | 948 | Doris快33% |
| q16 | 1054 | 2751 | SR快62% |
| q17 | 1971 | 2574 | SR快23% |
| q18 | 10951 | 9044 | Doris快17% |
| q19 | 3262 | 1860 | Doris快43% |
| q20 | 3528 | 4203 | SR快16% |
| q21 | 4886 | 6589 | SR快26% |
| q22 | 1134 | 1047 | Doris快8% |
| 总计 | 89713 | 67974 | Doris快24% |
22 条 Query 中,Doris 有 15 条耗时更低。
部分差距较明显的 Query 如下:
可以看到,在若干包含多表关联、聚合、复杂过滤等操作的 Query 中,Doris 拉开了较明显的耗时差距。
另一方面,Doris 并非在所有 Query 上都占优。StarRocks 在 Q6、Q11、Q12、Q16、Q17、Q20 和 Q21 上耗时更低,其中 Q16 的差距最为明显。
这些 Query 也是后续值得继续分析和优化的方向。
结束语
在相同硬件资源和测试协议下,目前完成的三组 1TB Benchmark 中,Doris 4.2 的总查询耗时都更低:
-
SSB 降低 24.5%
-
SSB-Flat 降低 10.7%
-
TPC-H 降低 23.9%
目前已经完成的 48 条 Query 中,Doris 有 35 条耗时更低。
当然,只看总耗时还不够。
拆到具体 Query 后可以看到,Doris 和 StarRocks 各自都有更擅长的查询类型。虽然 Doris 在三组 Benchmark 的总耗时上都更低,但 StarRocks 在部分 Query 上也有明显优势,
Benchmark 最终还是一个参考。真正落到业务里,数据模型、SQL 写法、并发量以及实际负载都会影响最终表现。有条件的话,还是建议结合自己的场景做测试。
相比 SSB 和 TPC-H,TPC-DS 的 SQL 更复杂,对查询优化器和执行引擎的考验也更全面。测试完成后,我们会继续公布完整的 Query 级结果。
SelectDB 是基于 Apache Doris 的商业版本,为企业提供千亿级混合检索开箱即用、集群性能调优及 7×24 专家级技术保障。欢迎访问 SelectDB 官网申请试用或咨询企业级落地方案。