StarRocks v2.0.1 测试使用报告

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