# benchmarksql-shard **Repository Path**: hzb111/benchmarksql-shard ## Basic Information - **Project Name**: benchmarksql-shard - **Description**: tpcc for nvmdb - **Primary Language**: Java - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-12-12 - **Last Updated**: 2025-04-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # BenchmarkSQL 安装与使用指南 ## 生成item、config的csv文件 - 在 props.nvmdb中配置fileLocation=/path/,生成csv文件存放路径 - isLoadItem=1,isLoadWarehouse=0。导入数据,item、config表的csv文件生成到fileLocation下。 ## 环境准备 ### 1. 安装ant - ant是Java的构建工具(BenchmarkSQL早期版本使用,新版本使用Maven) - 下载地址:[Apache Ant](https://ant.apache.org/bindownload.cgi) - 注意:版本1.0.14需要Java 8或以上版本 - 安装步骤: 1. 下载并解压 2. 将bin目录下的ant文件夹复制到适当路径(如:`/home/xxx/.local/bin`) 3. 配置环境变量: ```bash export ANT_HOME=/home/xxx/.local/ant export PATH=$PATH:$ANT_HOME/bin ``` ## 构建与配置 ### 2. 构建项目 1. 下载BenchmarkSQL源码 2. 解压后执行构建命令:`ant` 3. 构建完成后会生成`BenchmarkSQL-5.0.jar`文件 > 注:如遇问题请检查Java环境 ### 3. 配置驱动 - 将openGauss驱动复制到`lib/postgres`目录下 > 驱动可从openGauss官网下载 ### 4. 配置文件设置 - 将配置文件放置在`run`目录下 - 配置文件需包含: - 数据库地址 - 端口 - 用户名 - 密码 - 数据库名 - 驱动信息 - 参考文件:`props_64.nvmdb`(64个warehouse的配置示例) ## 执行测试 ### 5. 数据库初始化 1. 执行建表:`runDatabaseBuild.sh props_64.nvmdb` 2. 数据导入:`runDatabaseBuildLoadData.sh` ### 6. 运行基准测试 - 执行:`runBenchmark.sh` > **注意**:默认需要使用Python 2 ## NVMDB上TPCC测试注意事项 1. **数据库重建要求** - 需要在多节点上执行建表 - 确保表OID一致 - 每次测试前需重建数据库 2. **数据导入建议** - 建议在索引所在节点执行数据导入 - 可减少跨节点访问开销,提升导入速度 3. **压测要求** - 需在多节点上同步进行 4. **配置参数说明** - `warehousesBegin=1` - `warehousesEnd=64` - 用于指定测试warehouse范围,需在不同节点上划分 5. **数据量调整参数** ```java private static final int DISTRICT_PER_WAREHOUSE = 5; // 每个仓库的地区数(原始:10) private static final int CUSTOMER_PER_DISTRICT = 300; // 每个地区的客户数(原始:3000) private static final int ITEM_COUNT = 1000; // 商品总数(原始:100000) private static final int STOCK_PER_WAREHOUSE = ITEM_COUNT; // 每个仓库的库存数 private static final int ORDER_PER_DISTRICT = CUSTOMER_PER_DISTRICT; // 每个地区的订单数 private static final int NEW_ORDER_THRESHOLD = ORDER_PER_DISTRICT - 90; // 新订单阈值(原始:-900) ``` 6. **表结构说明** - NVMDB为外部表 - 建表语句在`run/sql.common`中已修改 - 原始标准TPCC在bak文件夹下