使用dbgen TPC-H生成大量数据库数据

http://blog.itpub.net/16582684/viewspace-703003/

环境: REHL 5,  tpch

TPC-H 基准测试是由 TPC-D发展而来的。TPC-H 用 3NF 实现了一个数据仓库, 用于商业智能计算测试。可从 http://www.tpc.org/tpch/ 中下载tpch_2_14_0.zip  ,放入Linux 环境目录下。
解压缩unzip tpch_2_14_0.zip, 在生成的文件 ./tpch_2_17_0/dbgen/中, cp makefile.suite  makefile , 编辑vi makefile 
$ ll
drwxr-xr-x  5 tibero6 dba      4096 Jan 26 09:34 tpch_2_17_0   
-rw-r--r--  1 tibero6 dba     15897 May 28  2015 tpch.sql
-rw-r--r--  1 tibero6 dba     28151 Dec 24 09:59 TPCH_TABLE.txt   --建表语句
-rw-r--r--  1 tibero6 dba  23690067 Jan 26 08:55 TPCH_Tools.zip

[tibero6@ibmtest dbgen]$ cp makefile.suite makefile 
[tibero6@ibmtest dbgen]$ vi makefile  

修改一下四处:
################
CC      = gcc 
# Current values 
for DATABASE are: INFORMIX, DB2, TDAT (Teradata)
#                                  SQLSERVER, SYBASE, ORACLE 
# Current values 
for MACHINE are:  ATT, DOS, HP, IBM, ICL, MVS, 
#                                  SGI, SUN, U2200, VMS, LINUX, WIN32 
# Current values 
for WORKLOAD are:  TPCH 
DATABASE
= ORACLE
MACHINE 
= LINUX
WORKLOAD 
= TPCH

注:这里要设置CC, DATABASE, MACHINE, WORKLOAD这四个变量

然后编译(make)并生成可执行文件(dbgen) 
[tibero6@ibmtest dbgen]$ make   或者make -f makefile
gcc -g -DDBNAME=\"dss\" -DLINUX -DORACLE  -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64    -c -o build.o build.c
gcc -g -DDBNAME=\"dss\" -DLINUX -DORACLE  -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64    -c -o driver.o driver.c
gcc -g -DDBNAME=\"dss\" -DLINUX -DORACLE  -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64    -c -o bm_utils.o bm_utils.c
gcc -g -DDBNAME=\"dss\" -DLINUX -DORACLE  -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64    -c -o rnd.o rnd.c
gcc -g -DDBNAME=\"dss\" -DLINUX -DORACLE  -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64    -c -o print.o print.c
gcc -g -DDBNAME=\"dss\" -DLINUX -DORACLE  -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64    -c -o load_stub.o load_stub.c
gcc -g -DDBNAME=\"dss\" -DLINUX -DORACLE  -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64    -c -o bcd2.o bcd2.c
gcc -g -DDBNAME=\"dss\" -DLINUX -DORACLE  -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64    -c -o speed_seed.o speed_seed.c
gcc -g -DDBNAME=\"dss\" -DLINUX -DORACLE  -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64    -c -o text.o text.c
gcc -g -DDBNAME=\"dss\" -DLINUX -DORACLE  -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64    -c -o permute.o permute.c
gcc -g -DDBNAME=\"dss\" -DLINUX -DORACLE  -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64    -c -o rng64.o rng64.c
gcc -g -DDBNAME=\"dss\" -DLINUX -DORACLE  -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64  -O -o dbgen build.o driver.o bm_utils.o rnd.o print.o load_stub.o bcd2.o speed_seed.o text.o permute.o rng64.o -lm
gcc -g -DDBNAME=\"dss\" -DLINUX -DORACLE  -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64    -c -o qgen.o qgen.c
gcc -g -DDBNAME=\"dss\" -DLINUX -DORACLE  -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64    -c -o varsub.o varsub.c
gcc -g -DDBNAME=\"dss\" -DLINUX -DORACLE  -DTPCH -DRNG_TEST -D_FILE_OFFSET_BITS=64  -O -o qgen build.o bm_utils.o qgen.o rnd.o varsub.o text.o bcd2.o permute.o speed_seed.o rng64.o -lm
[tibero6@ibmtest dbgen]$ 
[tibero6@ibmtest dbgen]$ ll dbgen
-rwxr-xr-x 1 tibero6 dba 124521 Jan 26 09:38 dbgen

生成1G的数据:

[tibero6@ibmtest dbgen]$./dbgen -vf -s 1
PC-H Population Generator (Version 2.17.0)
Copyright Transaction Processing Performance Council 1994 - 2010
Generating data for suppliers table/
Preloading text ... 100%
done.

查看生成的数据文件: ls -l *tbl
-rw-r--r-- 1 tibero6 dba  24346144 Jan 26 09:40 customer.tbl
-rw-r--r-- 1 tibero6 dba 759863287 Jan 26 09:40 lineitem.tbl
-rw-r--r-- 1 tibero6 dba      2224 Jan 26 09:40 nation.tbl
-rw-r--r-- 1 tibero6 dba 171952161 Jan 26 09:40 orders.tbl
-rw-r--r-- 1 tibero6 dba 118984616 Jan 26 09:40 partsupp.tbl
-rw-r--r-- 1 tibero6 dba  24135125 Jan 26 09:40 part.tbl
-rw-r--r-- 1 tibero6 dba       389 Jan 26 09:40 region.tbl
-rw-r--r-- 1 tibero6 dba   1409184 Jan 26 09:40 supplier.tbl

还有数据的表的定义文件,是该目录下的dss.dll文件

请使用浏览器的分享功能分享到微信等