一 测试数据
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下无法运行