关键字:
KingbaseES、TPC-H、测试、金仓数据库
下载TPC-H工具包
TPC-H工具包可以从官网(https//www.tpc.org)下载。本次测试使用的工具包为TPC-H_Tools_v3.0.0。
编译
解压缩工具包,将makefile.suite拷贝至Makefile:
cd /home/coder/soft/
unzip TPC-H_Tools_v3.zip
cd TPC-H_Tools_v3.0.0/dbgen/
cp makefile.suite Makefile
修改Makefile,填入以下内容:
################
## CHANGE NAME OF ANSI COMPILER HERE
################
CC = gcc
# Current values for DATABASE are: INFORMIX, DB2, TDAT (Teradata)
# SQLSERVER, SYBASE, ORACLE, VECTORWISE
# Current values for MACHINE are: ATT, DOS, HP, IBM, ICL, MVS,
# SGI, SUN, U2200, VMS, LINUX, WIN32
# Current values for WORKLOAD are: TPCH
DATABASE = POSTGRESQL
MACHINE = LINUX
WORKLOAD = TPCH
修改tpcd.h,加入以下宏:
#ifdef POSTGRESQL
#define GEN_QUERY_PLAN "EXPLAIN"
#define START_TRAN "BEGIN TRANSACTION"
#define END_TRAN "COMMIT;"
#define SET_OUTPUT ""
#define SET_ROWCOUNT "LIMIT %d\n"
#define SET_DBASE ""
#endif
执行make,生成dbgen和qgen两个可执行文件。
$ make
建库建表
所有计划节点都将Plan结构作为它们的第一个成员,这样所有计划节点都“派生”自Plan结构。计划节点指针经常被转换为Plan*在执行器中传递。
create database tpch
\c tpch
\i /home/coder/soft/TPC-H_Tools_v3.0.0/dbgen/dss_column.ddl
\d
List of relations
Schema | Name | Type | Owner | Storage
--------+----------+-------+-------+--------------------------------------
public | customer | table | coder | {orientation=row,compression=no}
public | lineitem | table | coder | {orientation=row,compression=no}
public | nation | table | coder | {orientation=row,compression=no}
public | orders | table | coder | {orientation=row,compression=no}
public | part | table | coder | {orientation=row,compression=no}
public | partsupp | table | coder | {orientation=row,compression=no}
public | region | table | coder | {orientation=row,compression=no}
public | supplier | table | coder | {orientation=row,compression=no}
(8 rows)
```
使用dbgen生成测试数据
-s参数指定数据量,单位为G。示例如下:
cd TPC-H_Tools_v3.0.0/dbgen/
dbgen -s1 # 生成1G数据
#dbgen -s10 # 生成10G数据
mkdir data # 将生成的8个tbl文件移动至data目录下
mv *.tbl data
使用如下命令去掉每行末尾的"|",使tbl文件与KES的COPY命令兼容:
for i in `ls *.tbl`
do
sed -i 's/|i
done
导入测试数据
使用COPY命令将dbgen生成的测试数据导入数据库:
export DATA_DIR=/home/coder/soft/TPC-H_Tools_v3.0.0/data
ksql -d tpch -c "COPY region FROM '$DATA_DIR/region.tbl' WITH DELIMITER AS '|'"
ksql -d tpch -c "COPY nation FROM '$DATA_DIR/nation.tbl' WITH DELIMITER AS '|'"
ksql -d tpch -c "COPY part FROM '$DATA_DIR/part.tbl' WITH DELIMITER AS '|'"
ksql -d tpch -c "COPY supplier FROM '$DATA_DIR/supplier.tbl' WITH DELIMITER AS '|'"
ksql -d tpch -c "COPY customer FROM '$DATA_DIR/customer.tbl' WITH DELIMITER AS '|'"
ksql -d tpch -c "COPY partsupp FROM '$DATA_DIR/partsupp.tbl' WITH DELIMITER AS '|'"
ksql -d tpch -c "COPY orders FROM '$DATA_DIR/orders.tbl' WITH DELIMITER AS '|'"
ksql -d tpch -c "COPY lineitem FROM '$DATA_DIR/lineitem.tbl' WITH DELIMITER AS '|'"
使用qgen生成测试语句
使用下面的命令生成22条测试语句,之后便可逐条进行测试。
cd TPC-H_Tools_v3.0.0/dbgen/
export DSS_QUERY=./queries
./qgen > queries.sql