1. 首先从TPC官网上下载TPC-H tools的压缩包,网址为:http://www.tpc.org/tpc_documents_current_versions/current_specifications.asp;

2. 解压;

3. 使用Visual Studio打开项目tpch.sln(dbgen目录下);

4. 右键dbgen项目,选择生成,然后将dbgen\Debug目录下的dbgen.exe拷贝到dbgen目录下;

5. 此时,通过cmd到dbgen目录下,便可根据命令“dbgen-vf -s 1”生成测试数据库实例(-s后面的是Scale Facter因子);

6. 后缀名为“.tbl”即为生成的数据。

7. 然后我在MySQL数据库上建立一个数据库,名为“tpch”;

8. 所有的建表语句在文件dss.ddl中,但是原始文件中没有主外键的约束,所以我自己添加了主外键的约束,注意LINEITEM与PARTSUPP之间存在混合引用的关系,具体建表语句如下:

DROP TABLE IF EXISTS LINEITEM;DROP TABLE IF EXISTS ORDERS;DROP TABLE IF EXISTS CUSTOMER;DROP TABLE IF EXISTS PARTSUPP;DROP TABLE IF EXISTS SUPPLIER;DROP TABLE IF EXISTS PART;DROP TABLE IF EXISTS NATION;DROP TABLE IF EXISTS REGION;CREATE TABLE REGION  ( R_REGIONKEY  INTEGER NOT NULL,R_NAME       CHAR(25) NOT NULL,R_COMMENT    VARCHAR(152),PRIMARY KEY(R_REGIONKEY));CREATE TABLE NATION  ( N_NATIONKEY  INTEGER NOT NULL,N_NAME       CHAR(25) NOT NULL,N_REGIONKEY  INTEGER NOT NULL,N_COMMENT    VARCHAR(152),PRIMARY KEY(N_NATIONKEY),FOREIGN KEY(N_REGIONKEY) REFERENCES REGION(R_REGIONKEY));         CREATE TABLE PART  ( P_PARTKEY     INTEGER NOT NULL,P_NAME        VARCHAR(55) NOT NULL,P_MFGR        CHAR(25) NOT NULL,P_BRAND       CHAR(10) NOT NULL,P_TYPE        VARCHAR(25) NOT NULL,P_SIZE        INTEGER NOT NULL,P_CONTAINER   CHAR(10) NOT NULL,P_RETAILPRICE DECIMAL(15,2) NOT NULL,P_COMMENT     VARCHAR(23) NOT NULL,PRIMARY KEY(P_PARTKEY));CREATE TABLE SUPPLIER ( S_SUPPKEY     INTEGER NOT NULL,S_NAME        CHAR(25) NOT NULL,S_ADDRESS     VARCHAR(40) NOT NULL,S_NATIONKEY   INTEGER NOT NULL,S_PHONE       CHAR(15) NOT NULL,S_ACCTBAL     DECIMAL(15,2) NOT NULL,S_COMMENT     VARCHAR(101) NOT NULL,PRIMARY KEY(S_SUPPKEY),FOREIGN KEY(S_NATIONKEY) REFERENCES NATION(N_NATIONKEY));CREATE TABLE PARTSUPP ( PS_PARTKEY     INTEGER NOT NULL,PS_SUPPKEY     INTEGER NOT NULL,PS_AVAILQTY    INTEGER NOT NULL,PS_SUPPLYCOST  DECIMAL(15,2)  NOT NULL,PS_COMMENT     VARCHAR(199) NOT NULL,PRIMARY KEY(PS_PARTKEY, PS_SUPPKEY),FOREIGN KEY(PS_PARTKEY) REFERENCES PART(P_PARTKEY),FOREIGN KEY(PS_SUPPKEY) REFERENCES SUPPLIER(S_SUPPKEY));CREATE TABLE CUSTOMER ( C_CUSTKEY     INTEGER NOT NULL,C_NAME        VARCHAR(25) NOT NULL,C_ADDRESS     VARCHAR(40) NOT NULL,C_NATIONKEY   INTEGER NOT NULL,C_PHONE       CHAR(15) NOT NULL,C_ACCTBAL     DECIMAL(15,2)   NOT NULL,C_MKTSEGMENT  CHAR(10) NOT NULL,C_COMMENT     VARCHAR(117) NOT NULL,PRIMARY KEY(C_CUSTKEY),FOREIGN KEY(C_NATIONKEY) REFERENCES NATION(N_NATIONKEY));CREATE TABLE ORDERS  ( O_ORDERKEY       INTEGER NOT NULL,O_CUSTKEY        INTEGER NOT NULL,O_ORDERSTATUS    CHAR(1) NOT NULL,O_TOTALPRICE     DECIMAL(15,2) NOT NULL,O_ORDERDATE      DATE NOT NULL,O_ORDERPRIORITY  CHAR(15) NOT NULL,  O_CLERK          CHAR(15) NOT NULL, O_SHIPPRIORITY   INTEGER NOT NULL,O_COMMENT        VARCHAR(79) NOT NULL,PRIMARY KEY(O_ORDERKEY),FOREIGN KEY(O_CUSTKEY) REFERENCES CUSTOMER(C_CUSTKEY));CREATE TABLE LINEITEM ( L_ORDERKEY    INTEGER NOT NULL,L_PARTKEY     INTEGER NOT NULL,L_SUPPKEY     INTEGER NOT NULL,L_LINENUMBER  INTEGER NOT NULL,L_QUANTITY    DECIMAL(15,2) NOT NULL,L_EXTENDEDPRICE  DECIMAL(15,2) NOT NULL,L_DISCOUNT    DECIMAL(15,2) NOT NULL,L_TAX         DECIMAL(15,2) NOT NULL,L_RETURNFLAG  CHAR(1) NOT NULL,L_LINESTATUS  CHAR(1) NOT NULL,L_SHIPDATE    DATE NOT NULL,L_COMMITDATE  DATE NOT NULL,L_RECEIPTDATE DATE NOT NULL,L_SHIPINSTRUCT CHAR(25) NOT NULL,L_SHIPMODE     CHAR(10) NOT NULL,L_COMMENT      VARCHAR(44) NOT NULL,PRIMARY KEY(L_ORDERKEY, L_LINENUMBER),               FOREIGN KEY(L_PARTKEY, L_SUPPKEY) REFERENCES PARTSUPP(PS_PARTKEY, PS_SUPPKEY));

9. 然后开始数据导入,具体导入命令如下(下述命令不能正常运行的话,则在登录MySQL客户端时加“--local-infile”):

LOAD DATA LOCAL INFILE '~/tpchdata/region.tbl' INTO TABLE REGION FIELDS TERMINATED BY '|' LINES TERMINATED BY '\n';
LOAD DATA LOCAL INFILE '~/tpchdata/nation.tbl' INTO TABLE NATION FIELDS TERMINATED BY '|' LINES TERMINATED BY '\n';
LOAD DATA LOCAL INFILE '~/tpchdata/part.tbl' INTO TABLE PART FIELDS TERMINATED BY '|' LINES TERMINATED BY '\n';
LOAD DATA LOCAL INFILE '~/tpchdata/supplier.tbl' INTO TABLE SUPPLIER FIELDS TERMINATED BY '|' LINES TERMINATED BY '\n';
LOAD DATA LOCAL INFILE '~/tpchdata/partsupp.tbl' INTO TABLE PARTSUPP FIELDS TERMINATED BY '|' LINES TERMINATED BY '\n';
LOAD DATA LOCAL INFILE '~/tpchdata/customer.tbl' INTO TABLE CUSTOMER FIELDS TERMINATED BY '|' LINES TERMINATED BY '\n';
LOAD DATA LOCAL INFILE '~/tpchdata/orders.tbl' INTO TABLE ORDERS FIELDS TERMINATED BY '|' LINES TERMINATED BY '\n';
LOAD DATA LOCAL INFILE '~/tpchdata/lineitem.tbl' INTO TABLE LINEITEM FIELDS TERMINATED BY '|' LINES TERMINATED BY '\n';

10. 右键项目qgen,选择生成,然后 将dbgen\Debug目录下的qgen.exe拷贝到dbgen目录下,并把dbgen\queries文件夹中的sql文件拷出来到目录dbgen\下;

11. 利用命令“qgen-d 1 > _1.sql”生成实例化的SQL,一直运行22次便可得到实例化的22个query(每次需指定query的序号)。

12. 然后就可以利用实例化的query进行测试啦。

TPC-H tools的使用相关推荐

  1. 解压版mysql安装服务失败怎么办_mysql-8.0.17解压版安装步骤及MySQL服务无法启动问题的解决办法...

    本人初学使用mysql数据库,由于喜欢使用解压版,于安装配置中遇到许多问题,部分未能在搜索引擎中找到答案,偶然找到解决办法,故于此留下一些随笔,方便自己也为网友提供一点点参考,如有错误的地方,请大家批 ...

  2. fio模拟mysql写入速度_IO压力测试工具 -- FIO 使用说明

    1FIO安装 FIO 工具用来测试裸盘的IO性能,直接操作存储设备,当然,在测试的时候,对会整个设备进行读写.如果不想对整盘进行操作,可以先用dd 命令,创建出一个文件,放在存储设备上,然后使用该文件 ...

  3. u-boot Makefile完全解读

    编译u-boot的步骤: #make XX_config    XX表示某个cpu体系 #make  生成我们需要的u-boot.bin 具体可参考u-boot文件中的README. 1.设置版本 V ...

  4. U-Boot 之四 构建过程(Kconfig 配置 + Kbuild 编译)详解

      在之前的博文 Linux 之八 完整嵌入式 Linux 环境介绍及搭建过程详解 中我们说了要一步步搭建整个嵌入式 Linux 运行环境,今天继续介绍 U-Boot 相关的内容.我所使用的硬件平台及 ...

  5. apache arm 交叉编译_arm apache php交叉编译

    设置交叉编译路径 CC=/usr/local/arm_linux_4.3/usr/bin/arm-linux-gcc CXX=/usr/local/arm_linux_4.3/usr/bin/arm- ...

  6. 在 Windows 上测试 Redis Cluster的集群填坑笔记

    redis 集群实现的原理请参考http://www.tuicool.com/articles/VvIZje 集群环境至少需要3个节点.推荐使用6个节点配置,即3个主节点,3个从节点. 新建6个文件夹 ...

  7. 学习笔记16-C语言-小项目-使用Makefile完成2048

    Makefile: Makefile是一系列编译指令组成的可执行文本,也叫做编译脚本. 在终端执行make命令会自动执行Makefile脚本中的编译命令, 而且它还可以根据文件的最后修改时间来判断哪些 ...

  8. Linux redhat ICE环境安装

    1.安装64位redhat6.4操作系统(客户机为64位)为软件开发工作站模式. 2.卸载yum源,重新安装为免费的CentOS6.4 yum源(yum能解决软件安装中的包依赖问题,redhat 未注 ...

  9. 使用libbpf-bootstrap构建BPF应用程序

    目录 为什么选择libbpf-bootstrap? 先决条件 Libbpf引导概述 最小的应用 BPF方面 用户空间端 生成文件 引导程序 包括:vmlinux.h,libbpf和应用程序头 BPF地 ...

  10. makefile--嵌套执行(四)

    原创博文,转载请标明出处--周学伟http://www.cnblogs.com/zxouxuewei/ 在大一些的项目里面,所有源代码不会只放在同一个目录,一般各个功能模块的源代码都是分开的,各自放在 ...

最新文章

  1. mongodb 结果二次调用_mongodb慢查询记录
  2. struts2的多个文件上传思路,小例子 ,仅供参考
  3. 悟透JavaScript (强烈推荐)
  4. 30万奖金等你拿 | “信也科技杯”第五届数据解决方案应用大赛火热报名中!...
  5. python iter next_python类中的__iter__, __next__与built-in的iter()函数举例
  6. ARM(IMX6U)裸机按键输入实验(BSP+SDK、GPIO输入与输出、按键消抖)
  7. [ZJOI2007]矩阵游戏
  8. 创建vue项目(三)路由跳转、反向代理、本地存储、状态管理
  9. 路由与交换技术(铺垫内容)
  10. centos下安装JDK8的方法
  11. remmima 不能保存_不再使用RememBear密码管理器忘记密码
  12. opencv+映美相机,从缓冲区中抓图片或者显示视频
  13. 局域网共享打印机教程
  14. C语言:用指针求字符串长度
  15. Java 多线程设计模式
  16. 我个人总结的Halcon内存管理心得笔记,关于C#/C++内存释放
  17. UDF函数:对字符串实现sha256加密,返回64位十六进制字符串
  18. 最牛逼的java代码_分享史上java最牛逼,最简短的代码
  19. 洛丽运动会 NFT 作品集第一弹
  20. springboot+dubbo+tomcat部署出错问题

热门文章

  1. 等离子显示器测试软件,液晶/等离子高清晰度显示器评测方案
  2. 设备管理成功经验总结
  3. packages.list和packages.xml
  4. 2010-06-24 苏州印象
  5. [转]DIV布局兼容“武林秘诀”
  6. 公司网络限制的一个变通解决方法
  7. 安防监控实现之控制命令下发(命令下发--html通过CGI与用户进程交互)
  8. DDD在有赞信贷核心系统中的实践
  9. Java实现模拟KFC点餐系统(设计模式)
  10. 全新开发悬赏任务系统源码分享