生成TPC-H数据集

Posted lavezhang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了生成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数据集的主要内容,如果未能解决你的问题,请参考以下文章

使用TPC-H 进行GreatSQL并行查询测试

类似于 TPC-H 和 TPC-DS 的基准

TPC-H数据导入postgresql教程

云原生数据仓库TPC-H第一背后的Laser引擎大揭秘

Apache Hawq功能测试脚本

手写数字识别——基于全连接层和MNIST数据集