首先从官网下载TPC-H_Tools_v2.18.0.zip,解压
1
|
$ unzip TPC-H_Tools_v2.18.0.zip
|
进入dbgen
目录,拷贝Makefile
1
2
|
$ cd tpc/2.18.0_rc2/dbgen
$ cp makefile.suite Makefile
|
修改Makefile,主要修改如下
1
2
3
4
|
CC = gcc
DATABASE = ORACLE
MACHINE = LINUX
WORKLOAD = TPCH
|
编译dbgen
./dbgen -h
可以查看dbgen
的用法
使用dbgen
产生一些测试数据,-s
表示scale(单位GB)
1
2
|
$ ./dbgen -s 50 -f
$ ll -h *.tbl
|
将测试数据转换为PostgreSQL能够识别的格式,并删除末尾的分隔符|
1
2
|
$ for i in `ls *.tbl`; do sed 's/|$//' $i > ${i/tbl/csv}; done
$ ll -h *.csv
|
创建软链接/tmp/dss-data
指向包含csv文件的目录
1
|
$ ln -s `pwd` /tmp/dss-data
|
下载pg_tpch
1
|
$ git clone https://github.com/digoal/pg_tpch.git
|
将pg_tpch的文件逗拷贝到dbgen目录下面
1
|
$ cp -r ~/pg_tpch/* ~/tpc/2.18.0_rc2/dbgen
|
创建一个queries
目录,用于存放转换后的TPC-H测试SQL
1
2
|
$ cd ~/tpc/2.18.0_rc2/dbgen
$ mkdir -p dss/queries
|
生成测试SQL,SF
用于dbgen指定scale值
1
2
3
4
5
6
|
$ SF=50
$ for q in `seq 1 22`
do
DSS_QUERY=dss/templates ./qgen -s $SF $q > dss/queries/$q.sql
sed 's/^select/explain select/' dss/queries/$q.sql > dss/queries/$q.explain.sql
done
|
设置gpdb几个参数
1
2
3
|
$ gpconfig -c enable_nestloop -v off
$ gpconfig -c work_mem -v 256MB
$ gpstop -u
|
开始测试,结果输出到results目录
1
|
$ ./tpch.sh ./results tpch-db gpadmin
|
结束后,可以使用以下方法生成CSV报告
1
|
$ php process.php ./results output.csv
|