如果你喜欢MatrixOne,请在Github上为它点亮⭐️吧!

MatrixOne 0.2.0性能测试报告

MatrixOne


一、测试结果

最新发布的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官方文档网站


三、SSB测试

SSB测试基于TPC定义的TCP-H规范,是一套用于测试数据库产品在星型模式下性能表现的基准测试规范,目前在学术界和工业界都得到了广泛的使用。它将TPC-H的雪花模式简化为了星型模式,将基准查询由TPC-H的复杂Ad-Hoc查询改为了结构更固定的OLAP查询。


1. 测试概况

为体现MatrixOne的单表查询能力,特将SSB测试中所含有的五张数据表:lineorder, part, supplier, customer, dates合成为一张宽表:lineorder_flat然后利用单机服务器进行单表查询(宽表共包含6亿行数据,总共约220GB空间)。此外,按照SSB既定的部分查询语句,利用单机与集群分别进行多表查询(共包含6亿行数据,主表占据约67GB空间)。同时由于MatrixOne对过滤的支持不完善,因此在标准SSB测试SQL中去除了需要带过滤的SQL语句。


2. 测试流程

SSB测试数据由dbgen命令产生,对数据预处理后使用load data infile命令将数据导入已建好的MatrixOne数据表中,最后进行相关查询操作。

具体测试流程请参见已发布的「SSB Test with MatrixOne」文档。


3. 测试结果

>>>单机单表测试<<<

在单机单表测试中,针对给定的版本,MatrixOne在每个查询上的运行速度均快于Clickhouse,总查询时间仅为Clickhouse的65%,结果如下:


单机单表测试Q2Q3.1Q3.2Q4.1Q4.2Q4.3SUM
MO 0.2.02.714.2311.052.944.2716.9142.11

ClickHouse

v21.11.4.14

3.825.0121.343.15.3226.3264.91


SSB单机单表.png




>>>单机多表测试<<<

在单机多表测试中,针对给定的版本,MatrixOne在每个查询上的运行速度均快于Clickhouse,仅在Query4.3中稍慢于Starrocks,但在总查询时间上仍然表现优异,为Clickhouse的50%,且速度略快于Starrocks,结果如下:


单机多表测试Q2

Q3.1

Q3.2

Q4.1

Q4.2

Q4.3

SUM
MO 0.2.013.612.9423.5613.9619.7246.07129.85
Starrocks

   v1.19.3

15.8816.9829.2516.7721.5435.95136.37

ClickHouse

v21.11.4.14

28.0527.8154.8427.241.8285.99265.71



SSB单机多表.png



>>>集群多表测试<<<

在集群多表测试中,针对给定的版本,除Query4.3,MatrixOne的运行速度均快于Starrocks,结果如下:


集群多表测试Q2Q3.1Q3.2Q4.1Q4.2Q4.3SUM
MO 0.2.04.945.859.676.056.8720.153.48
Starrocks

v1.19.3

6.086.279.796.879.5115.5554.07


SSB集群多表.png



四、纽约出租车(NYC)数据测试

纽约市出租车数据集收集了纽约市数十亿次出租车出行的详细信息,包括接送日期、时间、接送地点、行程距离、详细票价、费率、支付类型、以及乘客数量(大部分原始数据来自NYC Taxi & Limousine Commission)。


1. 测试概况

使用单机服务器对NYC数据进行单表查询(宽表共包含17亿行数据,总共约450GB空间)。由于目前MatrixOne对数据表分区的支持还不完善,因此去掉了Clickhouse中对Partition命令的使用。


2. 测试流程

NYC测试数据目前需要通过PostgreSQL进行下载,并导入MatrixOne的数据表,整个数据下载及导入的流程可参考「GitHub」以及官方文档「NYC Test with MatrixOne」。


3. 测试结果

>>>单机单表测试<<<

在NYC数据的单机单表测试中,针对给定的版本,除Q1之外,MatrixOne的运行速度均快于Clickhouse,总查询时间略少于Clickhouse;与Starrocks相比而言,由于其存在大量重复数据,所以其查询时间快于MatrixOne。具体结果如下:


单机单表测试Q1Q2Q3Q4SUM
MO8.372.673.485.3419.86
ClickHouse5.994.134.567.0921.77

Starrocks

( Only 30M unique data)

2.582.183.434.1912.38


单机单标.jpeg



五、欢迎加入MatrixOne社区

源码

github.com/matrixorigin/matrixone

Slack

matrixoneworkspace.slack.com

欢迎扫码加入MatrixOne技术交流群