大叔經驗分享(140)OLAP引擎對比測試
阿新 • • 發佈:2022-05-20
一 測試資料
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下無法執行