谁会用tpc-h dbgen 生成数据?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谁会用tpc-h dbgen 生成数据?相关的知识,希望对你有一定的参考价值。
参考技术A sudo ./dbgen -s 1 -T c这个是生成customer.tbl这个表,大小是24M.
要生成其他的表具体将T c改成以下即可:
-T c -- generate cutomers ONLY
-T l -- generate nation/region ONLY
-T L -- generate lineitem ONLY
-T n -- generate nation ONLY
-T o -- generate orders/lineitem ONLY
-T O -- generate orders ONLY
-T p -- generate parts/partsupp ONLY
-T P -- generate parts ONLY
-T r -- generate region ONLY
-T s -- generate suppliers ONLY
-T S -- generate partsupp ONLY
其他具体用法,输入命令 。/dbgen -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; " #define SET_DBASE "use %s; " #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。
以上是关于谁会用tpc-h dbgen 生成数据?的主要内容,如果未能解决你的问题,请参考以下文章