ssb-tools压测工具使用

一、工具介绍

安装包

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
  1. 切换路径

bash 复制代码
cd ./yaochi_performance_tool/ssb-tools/bin
  1. 安装

shell 复制代码
# 安装
bash build-ssb-dbgen.sh
# 安装成功后,将在./yaochi_performance_tool/ssb-tools/bin/ssb-dbgen/目录下生成dbgen二进制文件。
  1. 配置连接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小时不等。

# 
  1. 创建ssb表

bash 复制代码
# 创建ssb表
bash create-ssb-tables.sh
  1. 加载数据

r 复制代码
# 加载数据
bash load-ssb-data.sh -c 10
  1. 检查数据导入情况

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支持的变量,修改完之后,就可以正常使用了。

相关推荐
一水鉴天18 分钟前
统一对象拓扑(UOT)设计全链定稿:从三件事分离到三继承 之1 20261010(豆包“查看聊天内容”继续)
前端·css
栖凤29 分钟前
Java 的 try-catch 在 Agent 里失效了,我用了 5 个模式才兜住
java·前端·python
粥里有勺糖30 分钟前
视野修炼第136期 | 前端小恐龙"Deno"被收购
前端·github·ai编程
修炼的dance34 分钟前
页面塞了13.88 MB字体,导出的PDF只有71 KB
前端
qq_3691736335 分钟前
如何将 AI 生成的 HTML 网页发布成在线链接?不用自己搭建服务器
前端·人工智能·html·效率工具·html 发布
风花一世月42 分钟前
⚡ 我把一座含氢能源园区搬进了浏览器(五类能流实时算守恒,在线直接玩)
前端·人工智能
羲云1 小时前
Claude 越界事件之后:Agent 权限设计为什么不能只靠提示词
前端
行者全栈架构师1 小时前
【鸿蒙心迹】鸿蒙网络请求架构实战——@ohos.net.http 到 Axios 封装、拦截器与统一错误处理(HarmonyOS 7.x)
前端·算法·架构
全栈Agent 小李1 小时前
【无标题】
前端·后端·agent·ai编程·全栈·cursor·mcp
羲云1 小时前
别让 AI 凭记忆做调研:给 WorkBuddy 接上可核验的实时搜索
前端