金仓数据库KingbaseES TPC-H测试配置

173 阅读1分钟

关键字:

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