KaiwuDB V3.0 性能实战:使用 kwdb-tsbs 完整生成、导入与查询基准测试指南

KaiwuDB 概览与核心能力
KaiwuDB 是浪潮控股、面向 AIoT 场景的分布式多模数据库,支持时序与关系数据一库融合处理,具备高性能时序读写、就地计算、原生 AI能力,稳定安全、易运维,适配工业物联网、数字能源、车联网等场景,满足自主可控与海量设备数据管理需求
多模融合:搭载自适应时序引擎、预测分析引擎,实现多模数据统一管理,一站式满足 AIoT 全场景数据治理需求
高性能:依托就地计算、智能预计算与多模架构,支持高速入库、极速查询,覆盖数据采集、复杂查询、探索分析等全场景
低成本:自研高压缩算法可节省 90% 存储资源,搭配数据生命周期管理与分级存储;兼容 SQL 及主流生态,大幅降低学习与运维成本
kwdb-tsbs 工具概述
kwdb-tsbs 是一个基于 Timescale/tsbs 改造的开源高性能时序数据库基准测试工具,完整支持 KWDB 的数据生成、导入和查询测试功能。
- 数据生成:支持自定义设备数、时间范围和数据间隔
- 高效数据导入:针对 KWDB 优化的批量写入工具
- 查询场景:提供标准时序查询模板
- 自动化测试:一键执行完整 KWDB 基准测试流程
环境与依赖准备
下面文字系统介绍 KaiwuDB V3.0 环境部署与快速上手,包含安装、配置及性能测试全流程指南;若无现成环境,可参考下文完成配置
KaiwuDB V3.0 环境部署与快速上手:安装、配置与性能测试指南:https://weishuo.blog.csdn.net/article/details/158152717?spm=1011.2415.3001.5331
kwdb-tsbs 安装与编译指南
kwdb-tsbs必须以源码编译的方式安装部署,编译需要go语言版本在1.23或者以上版本
1、验证go语言版本
bashgo version2、kwdb-tsbs源码获取
bashgit clone https://gitee.com/kwdb/kwdb-tsbs.git3、进入kwdb-tsbs路径
bashcd kwdb-tsbs/4、编译kwdb-tsbs
bashmake
- 配置阿里云 Go 镜像(解决依赖拉取慢 / 卡住)
bash# 配置 GOPROXY 为阿里云国内镜像 go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct # 验证配置生效 go env | grep GOPROXY
- 直接编译 tsbs_generate_data
bash# 编译工具到 bin 目录 for dir in ./cmd/*/; do tool=$(basename $dir) echo "编译 $tool ..." go build -v -o ./bin/$tool $dir done5、编译成功
6、查看编译内容
bashtree ./bin/
kwdb-tsbs生成数据
官方文档:https://gitee.com/kwdb/docs/blob/master/tool-command-reference/perf-benchmark/kwdb-tsbs.md
kwdb-tsbs 提供数据生成工具(tsbs_generate_data),为 KWDB 数据库生成一个伪 CSV 文件。其中,每行表示一条记录,首项为操作类型(1 或 3)。
- 1:表示插入数据(包括数据值和标签值),格式为 1,ptag名,字段数量,插入的数据。
- 3:表示写入标签值,格式为 3,表名,ptag名,标签值
1、生成数据(生成KaiwuDB 的、模拟 100 台主机 1 天内的 CPU 监控数据每 10 秒采集 1 次,数据完全有序,最终输出到 data.dat 文件)
bash./tsbs_generate_data \ --format="kwdb" \ --use-case="cpu-only" \ --seed=123 \ --scale=100 \ --timestamp-start="2026-02-16T00:00:00Z" \ --timestamp-end="2026-02-17T00:00:00Z" \ --log-interval="10s" \ --orderquantity=12 \ --outoforder=0 \ --outoforderwindow=1s > data.dat2、查看文件内容(通过 TSBS 工具为 KaiwuDB 生成的 CPU 性能测试数据)
bashvi data.dat
导入数据
kwdb-tsbs 提供数据导入工具(tsbs_load_data),将由 tsbs_generate_data 工具生成的数据文件导入到目标数据库。tsbs_load_data 工具支持 INSERT 模式和 PREPARE 模式。两种数据导入模式的参数基本相同
INSERT 模式
1、通过 TSBS 工具,以证书认证方式、8 线程批量插入 1000 行,将 cpu-only 场景的 data.dat 测试数据导入 KWDB 集群库
bash./tsbs_load_kwdb \ --file=data.dat \ --user=root \ --host=120.55.72.198 \ --port=26257 \ --certdir=/etc/kaiwudb/certs \ --insert-type=insert \ --batch-size=1000 \ --db-name=defaultdb \ --case=cpu-only \ --workers=8 \ --partition=false2、KWDB 终端执行查询
sql# 切换到导入的库 USE defaultdb; # 统计总行数(应输出 864000) SELECT COUNT(*) FROM cpu; # 查看前5行数据 SELECT hostname AS host, k_timestamp AS ts, usage_user AS cpu_usage FROM cpu LIMIT 5;
- 成功查询到了导入的 CPU 测试数据,终端输出清晰展示了 host_2 主机不同时间点的 CPU 使用率,从数据生成、导入到查询的全流程都成功了
PREPARE 模式
PREPARE 模式和INSERT 模式类似此处不做演示,展示官方代码
bash./tsbs_load_kwdb \ --file=data.dat \ --user=root \ --pass=1234 \ --host=127.0.0.1 \ --port=26257 \ --insert-type=prepare \ --preparesize=1000 \ --db-name=benchmark \ --case=cpu-only \ --workers=12 \ --partition=false
- ./tsbs_load_kwdb:执行 KWDB 数据导入可执行文件
- --file=data.dat:指定待导入的 CPU 测试数据文件
- --user=root:使用 root 用户连接 KWDB
- --pass=1234:root 用户连接密码为 1234
- --host=127.0.0.1:KWDB 集群连接 IP 为本地回环地址
- --port=26257:KWDB 客户端连接端口
- --insert-type=prepare:采用预编译插入模式
- --preparesize=1000:单次预编译插入 1000 行数据
- --db-name=benchmark:数据导入至 benchmark 数据库
- --case=cpu-only:导入仅包含 CPU 指标的测试数据
- --workers=12:启用 12 个线程并行导入
- --partition=false:关闭表自动分区功能
kwdb-tsbs生成查询
kwdb-tsbs 提供查询生成工具(tsbs_generate_queries),用以生成指定查询类型的查询脚本
bash./tsbs_generate_queries \ --format=kwdb \ --use-case="cpu-only" \ --seed=123 \ --scale=100 \ --query-type="double-groupby-all" \ --prepare=false \ --queries=100 \ --timestamp-start="2026-02-16T00:00:00Z" \ --timestamp-end="2026-02-17T00:00:01Z" \ --db-name=benchmark > query.dat终端输出 KWDB mean of 10 metrics, all hosts, random 12h0m0s by 1h: 100 points 是正常的生成日志,说明工具已经生成了 100 条适配 KWDB 的查询语句并写入 query.dat 文件
- 查看内容
bashvi query.dat
kwdb-tsbs执行查询
在完成数据生成、数据导入、查询生成后,用户可以使用 tsbs_run_queries_kwdb 工具测试 KWDB 数据库的查询执行性能
通过 TSBS 工具完成 KWDB 性能测试,导入 100 台主机 24 小时 CPU 时序数据至 defaultdb 库,以 8 线程并发执行 100 条双层分组聚合查询,所有查询均成功,平均查询速率 28.55 条 / 秒,平均响应时间 270.37ms、最大 454.48ms,验证了其时序数据存储与复杂聚合查询能力
bash./tsbs_run_queries_kwdb \ --file=query.dat \ --user=root \ --host=120.55.72.198 \ --port=26257 \ --certdir=/etc/kaiwudb/certs \ --prepare=false \ --db-name=defaultdb \ --workers=8 > query.log
- 查看文件内容
bashvi query.log
kwdb-tsbs自动化测试
kwdb-tsbs 在 kwdb-tsbs/scripts 目录下提供自动化脚本(tsbs_kwdb.sh),用户可以一键执行完整的 KWDB 性能基准测试流程
- 已安装 kwdb-tsbs 以及 Go 1.23 或更高版本。
- 具有执行自动化测试脚本的权限
1、进入脚本文件
bashcd kwdb-tsbs/scripts2、注释tsbs_kwdb.sh脚本中下面这一段内容否则会报错
bashvim ./tsbs_kwdb.sh3、一键运行 tsbs_kwdb.sh 脚本完成tsbs对kwdb全流程性能测试
bashsudo workspace="/usr/local/kaiwudb" \ query_workers=8 \ port=26257 \ host="120.55.72.198" \ certdir="/etc/kaiwudb/certs" \ user="root" \ db-name="defaultdb" \ ./tsbs_kwdb.sh运行完成后,生成以下相关文件
bashkwdb-tsbs/ ├── load_data/ # 生成的导入数据 ├── query_data/ # 生成的查询数据 └── reports/ # 生成的测试结果 └── YMD_HMS_scale[scaleNum]_cluster[clusterNum]_insert[insertType]_wal[walSetting]_replica[replicaNum]_dop[degreeOfParallelism]/ ├── load_data/ # 导入测试的结果 └── query_data/ # 查询测试的结果
总结
KaiwuDB V3.0 性能实战:使用 kwdb-tsbs 完整生成、导入与查询基准测试指南,感兴趣的小伙伴可以一起体验!


















