MatrixOne 0.2.0性能測試報告
一、測試結果
最新發布的MatrixOne 0.2.0版本新增了Benchmarks章節,針對常規測試程序SSB與紐約出租車數據測試,在支持分佈式強一致性前提下,基於向量化執行引擎和因子化加速的技術加持,MatrixOne計算引擎在查詢速度方面表現突出,可以承載TB級別數據的快速查詢,與同類數據庫產品相比有較明顯的優勢。
-
單機單表的SSB測試:MatrixOne比Clickhouse快50%以上
-
單機多表的SSB測試:MatrixOne比Clickhouse快100%以上
-
集羣多表的SSB測試:大幅快於Clickhouse。由於Clickhouse集羣多表的能力有限,多表測試不詳細展開對比。
MatrixOne項目作為一款從零開始自主打造的超融合數據庫項目,經過8個月左右的開發,在分佈式強一致的能力融合後,計算查詢性能依然達到了可以與世界頂尖OLAP數據庫性能媲美水平。
未來MatrixOne還將在融合更多引擎能力的同時堅持對極致性能的持續追求,為用户創造極簡、快速的數據庫產品體驗。
二、測試內容
-
單機與集羣上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%,結果如下:
單機單表測試 | Q2 | Q3.1 | Q3.2 | Q4.1 | Q4.2 | Q4.3 | SUM |
---|---|---|---|---|---|---|---|
MO 0.2.0 | 2.71 | 4.23 | 11.05 | 2.94 | 4.27 | 16.91 | 42.11 |
ClickHouse v21.11.4.14 |
3.82 | 5.01 | 21.34 | 3.1 | 5.32 | 26.32 | 64.91 |
>>>單機多表測試<<<
在單機多表測試中,針對給定的版本,MatrixOne在每個查詢上的運行速度均快於Clickhouse,在總查詢時間上表現優異,為Clickhouse的50%,結果如下:
單機多表測試 | Q2 | Q3.1 | Q3.2 | Q4.1 | Q4.2 | Q4.3 | SUM |
---|---|---|---|---|---|---|---|
MO 0.2.0 | 13.6 | 12.94 | 23.56 | 13.96 | 19.72 | 46.07 | 129.85 |
ClickHouse v21.11.4.14 |
28.05 | 27.81 | 54.84 | 27.2 | 41.82 | 85.99 | 265.71 |
四、紐約出租車(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。具體結果如下:
單機單表測試 | Q1 | Q2 | Q3 | Q4 | SUM |
---|---|---|---|---|---|
MO | 8.37 | 2.67 | 3.48 | 5.34 | 19.86 |
ClickHouse | 5.99 | 4.13 | 4.56 | 7.09 | 21.77 |
五、歡迎加入MatrixOne社區
源碼:github.com/matrixorigin/matrixone
Slack:matrixoneworkspace.slack.com
歡迎掃碼加入MatrixOne技術交流羣