一、工具介绍
安装包
doris的压测工具 ssb-tools

安装样例
ruby
172.25.152.24:/data/ssbtools/yaochi_performance_tool/ssb-tools/bin
# 路径下的
-rwxr-xr-x 1 501 ftp 1877 Dec 21 2023 build-ssb-dbgen.sh
-rwxr-xr-x 1 501 ftp 2535 Dec 21 2023 create-ssb-tables.sh
-rwxr-xr-x 1 501 ftp 3203 Dec 21 2023 gen-ssb-data.sh
-rwxr-xr-x 1 501 ftp 7601 Dec 26 14:32 load-ssb-data.sh
-rwxr-xr-x 1 501 ftp 4818 Dec 25 19:41 run-ssb-flat-queries.sh
-rwxr-xr-x 1 501 ftp 5489 Dec 25 19:33 run-ssb-queries.sh
-rw-r--r-- 1 root root 152 Dec 25 18:36 sr-cluster.conf
drwxr-xr-x 2 root root 4096 Dec 26 14:27 ssb-data
drwxrwxr-x 2 516 518 4096 Dec 26 14:27 ssb-dbgen
-rw-r--r-- 1 root root 93265 Mar 14 2022 ssb-dbgen-linux.tar.gz
说明:
ssb-data 生成的测试集
doris的压测
ini
# ###
# doris 环境的ssb工具
# 路径
172.21.240.11:/data/ssbtool/yaochi_performance_tool/ssb-tools/bin
# conf 文件
export FE_HOST='172.21.27.30'
export FE_HTTP_PORT=8030
export FE_QUERY_PORT=9030
export USER='root'
export PASSWORD='Yumchina@2024'
export DB='ssb'
# 创建ssb表
bash create-ssb-tables.sh
# 加载数据
bash load-ssb-data.sh -c 10
# 检查数据导入情况
SELECT COUNT(*) FROM part;
SELECT COUNT(*) FROM customer;
SELECT COUNT(*) FROM supplier;
SELECT COUNT(*) FROM dates;
SELECT COUNT(*) FROM lineorder;
SELECT COUNT(*) FROM lineorder_flat;
# 查看数据库大小
select TABLE_SCHEMA, concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as dataMB from information_schema.TABLES GROUP BY TABLE_SCHEMA;
# 查看所有表的大小
SELECT TABLE_SCHEMA, TABLE_NAME, round((DATA_LENGTH + INDEX_LENGTH)/1024/1024 , 2), TABLE_ROWS
FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'ssb' ORDER BY (DATA_LENGTH + INDEX_LENGTH) desc;
#
sh run-ssb-queries.sh ssb
#
sh run-ssb-flat-queries.sh ssb
二、安装
解压
tar -zxvf yaochi_performance_tool.tar.gz
-
切换路径
bash
cd ./yaochi_performance_tool/ssb-tools/bin
-
安装
shell
# 安装
bash build-ssb-dbgen.sh
# 安装成功后,将在./yaochi_performance_tool/ssb-tools/bin/ssb-dbgen/目录下生成dbgen二进制文件。
-
配置连接starrocks配置文件doris-cluster.conf
ini
# Any of FE host
export FE_HOST='172.25.152.23'
# http_port in fe.conf
export FE_HTTP_PORT=8030
# query_port in fe.conf
export FE_QUERY_PORT=9030
# Doris username
export USER='root'
# Doris password
export PASSWORD=''
# The database where SSB tables located
export DB='ssb'
三、准备测试数据
生成ssb测试集
bash
# 生成SSB测试集
cd ./yaochi_performance_tool/ssb-tools/bin
bash gen-ssb-data.sh -s 100 -c 100
# 数据会以.tbl为后缀生成在ssb-data/目录下。
# -s 100表示测试集大小系数为100,-c 100表示并发100个线程生成lineorder表的数据。-c参数也决定了最终lineorder表的文件数量。参数越大,文件数越多,每个文件越小。
# -s 100参数下,生成的数据集文件总大小约60GB。生成时间可能在数分钟到1小时不等。
#
-
创建ssb表
bash
# 创建ssb表
bash create-ssb-tables.sh
-
加载数据
r
# 加载数据
bash load-ssb-data.sh -c 10
-
检查数据导入情况
sql
# 检查数据导入情况
SELECT COUNT(*) FROM part;
SELECT COUNT(*) FROM customer;
SELECT COUNT(*) FROM supplier;
SELECT COUNT(*) FROM dates;
SELECT COUNT(*) FROM lineorder;
SELECT COUNT(*) FROM lineorder_flat;
四、使用
sql
#
# 查看数据库大小
select TABLE_SCHEMA, concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as dataMB from information_schema.TABLES GROUP BY TABLE_SCHEMA;
# 查看所有表的大小
SELECT TABLE_SCHEMA, TABLE_NAME, round((DATA_LENGTH + INDEX_LENGTH)/1024/1024 , 2), TABLE_ROWS
FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'ssb' ORDER BY (DATA_LENGTH + INDEX_LENGTH) desc;
bash
#
#
sh run-ssb-queries.sh ssb
#
sh run-ssb-flat-queries.sh ssb
调整并发度
ini
#
Parallelism 表示查询并发度,通过 set parallel_fragment_exec_instance_num=8 设置。
# 其他
Runtime Filter Mode 是 Runtime Filter 的类型,通过 set runtime_filter_type="BLOOM_FILTER" 设置。(Runtime Filter
(opens new window) 功能对 SSB 测试集效果显著。因为该测试集中,Join 算子右表的数据可以对左表起到很好的过滤作用。你可以尝试通过 set runtime_filter_mode=off 关闭该功能,看看查询延迟的变化。)
#

来源: www.bookstack.cn/read/doris-...
五、注意
执行run-ssb-queries.sh 和 run-ssb-flat-queries.sh 会提示某些变量UNKOWN,需要改成starrocks支持的变量,修改完之后,就可以正常使用了。