1. 測試背景
starrocks 2.0.1版本使用低基數全局字典優化後,性能有很大提升,這是準備重點測試部分,測試後對於聚合sql有明顯的性能提升。當然企業中統計分析中多維數據分析的場景也比較多,有助於整體的性能提升,大家可以規劃合適時間進行版本升級。
2. 測試集羣
3臺32核64G組成的starrocks集羣
3. 測試模擬數據
3.1 模擬數據
3.3.1 安裝腳本
cd /opt/soft/wget https://starrocks-public.oss-cn-zhangjiakou.aliyuncs.com/ssb-poc-0.9.3.zip
unzip ssb-poc-0.9.3.zip
cd ssb-poc-0.9.3/ssb-poc
make && make install
3.3.2 生成100G數據腳本
cd /opt/soft/ssb-poc-0.9.3/ssb-poc/output
sh bin/gen-ssb.sh 100 /mnt/starrocks/testdata
3.3.3 修改配置
vim /opt/soft/ssb-poc-0.9.3/ssb-poc/output/conf/starrocks.conf
3.3.4 安裝pymysql (ps:沒有情況下)
pip3 install PyMySQL
3.3.5 導入數據
cd /opt/soft/ssb-poc-0.9.3/ssb-poc/output
sh bin/stream_load.sh /mnt/starrocks/testdata
3.3.6 插入數據到寬表lineorder_flat
sh bin/flat_insert.sh
顯示:
sql: ssb_flat_insert start
sql: ssb_flat_insert success
3.3.7 表條數
表名 | 行數 |
customer | 3000000 |
dates | 2556 |
lineorder | 600037902 |
lineorder_flat | 600037902 |
part | 1400000 |
supplier | 200000 |
4. 測試結果
4.1 使用benchmark
ssb 並行度8 | ssb-flat 並行度8 | |
q1 | 630ms | 65ms |
q2 | 451ms | 26ms |
q3 | 77ms | 52ms |
q4 | 4171ms | 255ms |
q5 | 312ms | 182ms |
q6 | 292ms | 144ms |
q7 | 810ms | 249ms |
q8 | 341ms | 178ms |
q9 | 279ms | 126ms |
q10 | 92ms | 30ms |
q11 | 720ms | 260ms |
q12 | 293ms | 120ms |
q13 | 215ms | 87ms |
4.2 聚合sql測試
使用低基數全局字典優化,必須進行採集統計信息才能生效,測試階段採用的是手動Analyze收集,立刻生效就會進行調度。後續生產實踐可進行FE的相關配置,詳情見starrocks文檔說明。
對比如下表格中兩個版本的查詢性能:
starrocks 1.18.5 | VS | starrocks 2.0.1 |
4.2.1 百萬級數據表
使用相同的真實場景聚合sql,百萬級的數據表,starrocks1.18.5版本執行時間在5S+量級,而starrocks2.0.2版本的執行時間在毫秒級。
4.2.2 千萬級數據表
使用相同的真實場景聚合sql,千萬級的數據表,starrocks1.18.5版本執行時間在7S+量級,而starrocks2.0.2版本的執行時間在1秒級。
https://forum.mirrorship.cn/t/topic/1683
https://blog.csdn.net/weixin_43433596/article/details/134468555