1. 程式人生 > 其它 >大叔經驗分享(140)OLAP引擎對比測試

大叔經驗分享(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 Doris DorisDB Presto
q1.1 879 714 417 10000
q1.2 966 517 325 11000
q1.3 982 522 330 8000
q2.1 1675 5754 657 51000
q2.2 1764 4423 514 32000
q2.3 1717 4126 449 29000
q3.1 2535 6550 1101 50000
q3.2 1693 4934 590 40000
q3.3 1729 4303 539 30000
q3.4 1658 589 499 21000
q4.1 2437 8498 1359 55000
q4.2 2146 3411 1017 34000
q4.3 2177 2790 828 57000
SCORE 0 0 13 0
TOTAL 22,358 47,131 8,625 428,000

結論

  • 整體查詢時長最快的是Droisdb
  • 13個查詢中,最快的都是Dorisdb

ps

  • Impala和Presto底層查詢Parquet+Snappy
  • Clickhouse多表查詢需要改造sql,不參與
  • doris整體耗時是dorisdb的6倍

單表測試

單位:毫秒

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

結論

  • 整體查詢時長最快的是Dorisdb
  • 13個查詢中,最快的6個查詢是Clickhouse,7個查詢是Dorisdb
  • doris整體耗時是dorisdb的3倍

ps

  • sql指令碼由於各種語法不相容在presto下無法執行