>>
测试结果
最新发布的MatrixOne 0.2.0版本新增了Benchmarks章节,针对常规测试程序SSB与纽约出租车数据测试,在向量化执行引擎和因子化加速技术的加持之下,MatrixOne在查询速度方面表现突出,可以承载TB级别数据的快速查询,与同类数据库产品相比有较明显的优势。
单机单表的SSB测试:MatrixOne比Clickhouse快50%以上
单机多表的SSB测试:MatrixOne比Clickhouse快100%以上,略快于Starrocks
集群多表的SSB测试:MatrixOne与Starrocks性能基本持平
单表单表的NYC Taxi测试:MatrixOne略快于Clickhouse
MatrixOne项目经过8个月左右的开发,已经可以与世界先进OLAP数据库性能媲美。未来还将继续优化性能,为用户创造更加快速的数据库系统。
测试内容
单机与集群上SSB测试单表、多表查询
单机服务器上纽约出租车数据的单表查询
测试硬件配置:本次所有测试所使用的服务器配置均为「AMD EPYC™ Rome CPU 2.6GHz/3.3GHz, 16核, 32 GiB 内存」
更加详细的测试信息可参见 「MatrixOne官方文档网站」
https://docs.matrixorigin.io/0.2.0/
SSB测试
SSB测试基于TPC定义的TCP-H规范,是一套用于测试数据库产品在星型模式下性能表现的基准测试规范,目前在学术界和工业界都得到了广泛的使用。它将TPC-H的雪花模式简化为了星型模式,将基准查询由TPC-H的复杂Ad-Hoc查询改为了结构更固定的OLAP查询。
01
为体现MatrixOne的单表查询能力,特将SSB测试中所含有的五张数据表:lineorder, part, supplier, customer, dates合成为一张宽表:lineorder_flat。然后利用单机服务器进行单表查询(宽表共包含6亿行数据,总共约220GB空间)。此外,按照SSB既定的部分查询语句,利用单机与集群分别进行多表查询(共包含6亿行数据,主表占据约67GB空间)。同时由于MatrixOne对过滤的支持不完善,因此在标准SSB测试SQL中去除了需要带过滤的SQL语句。
02
SSB测试数据由dbgen命令产生,对数据预处理后使用load data infile命令将数据导入已建好的MatrixOne数据表中,最后进行相关查询操作。
具体测试流程请参见已发布的
「SSB Test with MatrixOne」文档。
https://docs.matrixorigin.io/0.2.0/MatrixOne/Get-Started/Tutorial/SSB-test-with-matrixone/
03
单机单表测试
在单机单表测试中,针对给定的版本,MatrixOne在每个查询上的运行速度均快于Clickhouse,总查询时间仅为Clickhouse的65%,结果如下:
单机单表测试 | MO 0.2.0 | ClickHouse v21.11.4.14 |
Q2 | 2.71 | 3.82 |
Q3.1 | 4.23 | 5.01 |
Q3.2 | 11.05 | 21.34 |
Q4.1 | 2.94 | 3.1 |
Q4.2 | 4.27 | 5.32 |
Q4.3 | 16.91 | 26.32 |
SUM | 42.11 | 64.91 |
单机多表测试
在单机多表测试中,针对给定的版本,MatrixOne在每个查询上的运行速度均快于Clickhouse,仅在Query4.3中稍慢于Starrocks,但在总查询时间上仍然表现优异,为Clickhouse的50%,且速度略快于Starrocks,结果如下:
单机多 表测试 | MO 0.2.0 | Starrocks v1.19.3 | ClickHouse v21.11.4.14 |
Q2 | 13.6 | 15.88 | 28.05 |
Q3.1 | 12.94 | 16.98 | 27.81 |
Q3.2 | 23.56 | 29.25 | 54.84 |
Q4.1 | 13.96 | 16.77 | 27.2 |
Q4.2 | 19.72 | 21.54 | 41.82 |
Q4.3 | 46.07 | 35.95 | 85.99 |
SUM | 129.85 | 265.71 |
集群多表测试
在集群多表测试中,针对给定的版本,除Query4.3,MatrixOne的运行速度均快于Starrocks,结果如下:
集群多表测试 | MO 0.2.0 | Starrocks v1.19.3 |
Q2 | 4.94 | 6.08 |
Q3.1 | 5.85 | 6.27 |
Q3.2 | 9.67 | 9.79 |
Q4.1 | 6.05 | 6.87 |
Q4.2 | 6.87 | 9.51 |
Q4.3 | 20.1 | 15.55 |
SUM | 53.48 | 54.07 |
纽约出租车(NYC)数据测试
纽约市出租车数据集收集了纽约市数十亿次出租车出行的详细信息,包括接送日期、时间、接送地点、行程距离、详细票价、费率、支付类型、以及乘客数量(大部分原始数据来自NYC Taxi & Limousine Commission)。
01
使用单机服务器对NYC数据进行单表查询(宽表共包含17亿行数据,总共约450GB空间)。由于目前MatrixOne对数据表分区的支持还不完善,因此去掉了Clickhouse中对Partition命令的使用。
02
NYC测试数据目前需要通过PostgreSQL进行下载,并导入MatrixOne的数据表,整个数据下载及导入的流程可参考「GitHub」以及官方文档「NYC Test with MatrixOne」。
「GitHub」
https://github.com/toddwschneider/nyc-taxi-data
「NYC Test with MatrixOne」
https://docs.matrixorigin.io/0.2.0/MatrixOne/Get-Started/Tutorial/NYC-test-with-matrixone/
03
单机单表测试
在NYC数据的单机单表测试中,针对给定的版本,除Q1之外,MatrixOne的运行速度均快于Clickhouse,总查询时间略少于Clickhouse;与Starrocks相比而言,由于其存在大量重复数据,所以其查询时间快于MatrixOne。具体结果如下:
单机单 表测试 | MO | ClickHouse | Starrocks (Only 30M unique data) |
Q1 | 8.37 | 5.99 | 2.58 |
Q2 | 2.67 | 4.13 | 2.18 |
Q3 | 3.48 | 4.56 | 3.43 |
Q4 | 5.34 | 7.09 | 4.19 |
SUM | 19.86 | 12.38 |