1. 程式人生 > >生成TPC-H資料集

生成TPC-H資料集

下載tpc-h tool 版本有點老,2.14.3,夠用了。

 

在解壓的資料夾下面cd到dbgen下,找到makefile.suite。

~/tpch_2_14_3$ cd dbgen
~/tpch_2_14_3/dbgen$ vim makefile.suite

-----------------------------

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 = MYSQL


MACHINE = LINUX
WORKLOAD = TPCH

---------------------------------

  • 設定C語言編譯器為gcc(如果你用的是其他的編譯器就改成其他對應名字)
  • DATABASE設為MYSQL(注意註釋裡寫的提供的資料庫格式沒有mysql,所以等一下要自己寫一個格式,見步驟3)
  • MACHINE = LINUX 和 WORKLOAD = TPCH 就不用說啥意思了……

改好之後儲存為makefile,這樣才好用make命令。

 

修改tpcd.h

#ifdef MYSQL
#define GEN_QUERY_PLAN  ""
#define START_TRAN      "START TRANSACTION"
#define END_TRAN        "COMMIT"
#define SET_OUTPUT      ""
#define SET_ROWCOUNT    "limit %d;\n"
#define SET_DBASE       "use %s;\n"
#endif

開始構建
~/tpch_2_14_3/dbgen$ make

生成tbl資料檔案

接下來要用dbgen生成資料,一共會生成8個表(.tbl)。

檢視README裡面有命令列引數解說,這裡我們在dbgen目錄下用

./dbgen -s 1

-s 1 表示生成1G的資料 (如果你之前曾經嘗試過生成資料,最好先make clean,再重新make,接著到這步加上-f覆蓋掉)

生成之後可以用head命令檢查一下tbl們,會看到每一行都有一些用“|”隔開的欄位。

 

壓縮包裡自帶兩個指令碼:

  • dss.ddl:用來建表
  • dss.ri:關聯表中primary key和foreign key。