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秒级。
