欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

BenchmarkSQL 5.0源码修改--支持人大金仓数据库 KingBase

程序员文章站 2022-06-26 08:08:03
benchmarksql 在5.0版本中没有对人大金仓数据库(KingBase)的TPC-C测试支持,本文通过修改部分源码,让benchmarksql 5.0支持KingBase。个人理解: BenchmarkSQL 是通过jdbc方式连接数据库,通过DML操作来对数据进行性能测试。所以,对于不同类型的数据,BenchmarkSQL只要获取到对应的驱动,及正确的URL格式,账号密码等,就能与不同类型数据库进行连接,再对数据库进行DML操作来对数据库进行性能测试。一般常用的数据库的DML语句都是差...

benchmarksql 在5.0版本中没有对人大金仓数据库(KingBase)的TPC-C测试支持,本文通过修改部分源码,让benchmarksql 5.0支持KingBase。

个人理解: BenchmarkSQL 是通过jdbc方式连接数据库,通过DML操作来对数据进行性能测试。

所以,对于不同类型的数据,BenchmarkSQL只要获取到对应的驱动,及正确的URL格式,账号密码等,就能与不同类型数据库进行连接,

再对数据库进行DML操作来对数据库进行性能测试。一般常用的数据库的DML语句都是差不多的。

所以,要BenchmarkSQL不同类型数据库,基本上只要增加该数据库的驱动,连接数据库的配置文件,及源码里对数据库类型做个判断就差不多了。

以下是 简单几步实现BenchmarkSQL对人大金仓数据库性能测试

环境:

centos 7.5

benchmarksql 5.0

kingbase 8

jdk 1.8

1. 源码下载,解压

https://download.csdn.net/download/ffb920724/14141743  已支持MySQL

下载BenchmarkSQL5.0版本,目录结构如下

BenchmarkSQL 5.0源码修改--支持人大金仓数据库 KingBase

2. 修改源码

    2.1  修改 src/client/jTPCC.java,增加kingbase相关部分,如下所示,(保持和MySQL一致)

BenchmarkSQL 5.0源码修改--支持人大金仓数据库 KingBase

   2.2 (无需改动,已存在default情况)修改src/client/jTPCCConnection.java, SQL子查询增加"AS L"别名,如下所示:

BenchmarkSQL 5.0源码修改--支持人大金仓数据库 KingBase

可见,除了jTPCCConfig.DB_POSTGRES这种情况特殊,其他数据库类型(dbType) 统一默认走default;

2.3(这步不需要改动)具体看看jTPCCConfig都有哪些数据库类型,包括 oracle,postgres,其他数据库默认使用DB_UNKNOWN ,包括MySQL,人大金仓等,和2.1中数据库类型赋值对应;

BenchmarkSQL 5.0源码修改--支持人大金仓数据库 KingBase

2.4  在lib包下,创建人大金仓目录并添加人大金仓数据库驱动,如下:

BenchmarkSQL 5.0源码修改--支持人大金仓数据库 KingBase

BenchmarkSQL 5.0源码修改--支持人大金仓数据库 KingBase

注意 要把log4j也加进去,如图所示架包。不然无法打印日志会报错。

2.5 配置人大金仓架包路径  修改/data/BenchmarkSQL/run/funcs.sh文件,添加人大金仓数据库驱动路径

BenchmarkSQL 5.0源码修改--支持人大金仓数据库 KingBase

保持和mysql一样格式,注意后面没有 ;;

2.6 添加人大金仓数据库类型  修改/data/BenchmarkSQL/run/funcs.sh文件,

BenchmarkSQL 5.0源码修改--支持人大金仓数据库 KingBase

OK,源码修改完成。

3. ant 编译         --》 在 BenchmarkSQL解压目录下(/data/BenchmarkSQL)编译

BenchmarkSQL 5.0源码修改--支持人大金仓数据库 KingBase

编译成功!

PS: 如果

没有ant 命令 ,yum install ant  在线安装即可。

4.  在 run 目录下,新增人大金仓配置文件

BenchmarkSQL 5.0源码修改--支持人大金仓数据库 KingBase

主要变动内容如下:
db=kingbase
driver=com.kingbase8.Driver
conn=jdbc:kingbase8://localhost:54321/xxx
user=xxx
password=xxx

。。。。

完成BenchmarkSQL对人大金仓数据库性能测试的支持!

后面就和测试mysql已支持的数据库一样操作即可。

BenchmarkSQL对mysql进行性能测试 https://blog.csdn.net/ffb920724/article/details/112478578

 

参考: https://www.jianshu.com/p/622545cb1341

 

本文地址:https://blog.csdn.net/ffb920724/article/details/112567934