大叔经验分享(140)OLAP引擎对比测试

一 测试数据

SSB (Star Schema Benchmark)

SSB
SSB将TPC-H的雪花模式简化为了星型模式,将基准查询由TPC-H的复杂Ad-Hoc查询改为了结构更固定的OLAP查询

table comment
lineorder 订单表
customer 用户表
supplier 供应商表
part 零件表
dates 日期表
lineorder_flat 订单宽表

测试sql:13个

数据生成

https://github.com/vadimtk/ssb-dbgen

dbgen -s 100 -T a

数据大小

TOTAL lineorder customer supplier part dates lineorder_flat
Rows 6亿 600,038,145 3,000,000 200,000 140,000 2,556 6亿
Size(csv) 68G 67G 317M 19M 135M 270K
Size(parquet+snappy) 17G 16G 117M 7M 15M 30K 42G
Size(doris) 16G 15G 138M 9M 12M 33K 59G
Size(dorisdb) 16G 15G 138M 9M 12M 33K 59G
Size(clickhouse) 18G 18G 120M 8M 25M

测试数据库

Component DB Comment
Hive test_ssb_100_p csv
Hive test_ssb_100_p parquet+snappy
Clickhouse ssb_100
DorisDB ssb_100
Doris ssb_100

二 测试引擎

Engine Version Resource Host Cmd
Impala 3.1.1 (2G+6G)*10 impala-shell -i $server:21000 -d test_ssb_100_p
Presto 0.231 12G*3 /data/soft/presto --server $server:7080 --catalog hive --schema test_ssb_100_p
ClickHouse 20.8.7.15 32G*2 /104 clickhouse-client -m -h $server --port 9000 --password default -d ssb_100
Doris 0.14.0 32G*4 mysql -h$server -P9030 -uroot -proot ssb_100
DorisDB 1.15.0 32G*4 mysql -h$server -P9031 -uroot -proot ssb_100

三 测试结果

多表join测试

单位:毫秒

Query Impala Doris0.14 Doris1.0 DorisDB Presto
q1.1 879 714 230 417 10000
q1.2 966 517 70 325 11000
q1.3 982 522 40 330 8000
q2.1 1675 5754 5100 657 51000
q2.2 1764 4423 4200 514 32000
q2.3 1717 4126 4090 449 29000
q3.1 2535 6550 6660 1101 50000
q3.2 1693 4934 6930 590 40000
q3.3 1729 4303 4110 539 30000
q3.4 1658 589 170 499 21000
q4.1 2437 8498 7980 1359 55000
q4.2 2146 3411 2690 1017 34000
q4.3 2177 2790 2220 828 57000
SCORE 0 0 4 9 0
TOTAL 22,358 47,131 44,430 8,625 428,000

结论

  • 整体查询时长最快的是Droisdb
  • 13个查询中,9个最快的是Dorisdb,4个最快的是Doris1.0

ps

  • Impala和Presto底层查询Parquet+Snappy
  • Clickhouse多表查询需要改造sql,不参与
  • doris整体耗时是dorisdb的5-6倍

单表测试

单位:毫秒

Query Clickhouse Impala Doris0.14 Doris1.0 DorisDB
q1.1 163 775 509 250 254
q1.2 64 759 382 70 204
q1.3 53 871 408 200 247
q2.1 853 1137 1232 670 376
q2.2 729 990 1321 630 465
q2.3 675 878 1161 460 269
q3.1 1082 1418 1830 780 576
q3.2 610 1383 1483 750 383
q3.3 528 1288 1174 430 276
q3.4 58 1155 1111 50 244
q4.1 1188 1298 1986 890 531
q4.2 356 1513 1631 280 561
q4.3 277 1390 1413 230 483
SCORE 3 0 0 3 7
TOTAL 6,636 14,855 15,641 5,690 4,869

结论

  • 整体查询时长最快的是Dorisdb
  • 13个查询中,最快的3个查询是Clickhouse,3个是Doris1.0,7个查询是Dorisdb
  • doris1.0整体耗时已经追上dorisdb

ps

  • sql脚本由于各种语法不兼容在presto下无法运行
posted @ 2022-05-20 18:09  匠人先生  阅读(417)  评论(0编辑  收藏  举报