TPC-H tools的使用
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的使用相关推荐
- 解压版mysql安装服务失败怎么办_mysql-8.0.17解压版安装步骤及MySQL服务无法启动问题的解决办法...
本人初学使用mysql数据库,由于喜欢使用解压版,于安装配置中遇到许多问题,部分未能在搜索引擎中找到答案,偶然找到解决办法,故于此留下一些随笔,方便自己也为网友提供一点点参考,如有错误的地方,请大家批 ...
- fio模拟mysql写入速度_IO压力测试工具 -- FIO 使用说明
1FIO安装 FIO 工具用来测试裸盘的IO性能,直接操作存储设备,当然,在测试的时候,对会整个设备进行读写.如果不想对整盘进行操作,可以先用dd 命令,创建出一个文件,放在存储设备上,然后使用该文件 ...
- u-boot Makefile完全解读
编译u-boot的步骤: #make XX_config XX表示某个cpu体系 #make 生成我们需要的u-boot.bin 具体可参考u-boot文件中的README. 1.设置版本 V ...
- U-Boot 之四 构建过程(Kconfig 配置 + Kbuild 编译)详解
在之前的博文 Linux 之八 完整嵌入式 Linux 环境介绍及搭建过程详解 中我们说了要一步步搭建整个嵌入式 Linux 运行环境,今天继续介绍 U-Boot 相关的内容.我所使用的硬件平台及 ...
- 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- ...
- 在 Windows 上测试 Redis Cluster的集群填坑笔记
redis 集群实现的原理请参考http://www.tuicool.com/articles/VvIZje 集群环境至少需要3个节点.推荐使用6个节点配置,即3个主节点,3个从节点. 新建6个文件夹 ...
- 学习笔记16-C语言-小项目-使用Makefile完成2048
Makefile: Makefile是一系列编译指令组成的可执行文本,也叫做编译脚本. 在终端执行make命令会自动执行Makefile脚本中的编译命令, 而且它还可以根据文件的最后修改时间来判断哪些 ...
- Linux redhat ICE环境安装
1.安装64位redhat6.4操作系统(客户机为64位)为软件开发工作站模式. 2.卸载yum源,重新安装为免费的CentOS6.4 yum源(yum能解决软件安装中的包依赖问题,redhat 未注 ...
- 使用libbpf-bootstrap构建BPF应用程序
目录 为什么选择libbpf-bootstrap? 先决条件 Libbpf引导概述 最小的应用 BPF方面 用户空间端 生成文件 引导程序 包括:vmlinux.h,libbpf和应用程序头 BPF地 ...
- makefile--嵌套执行(四)
原创博文,转载请标明出处--周学伟http://www.cnblogs.com/zxouxuewei/ 在大一些的项目里面,所有源代码不会只放在同一个目录,一般各个功能模块的源代码都是分开的,各自放在 ...
最新文章
- mongodb 结果二次调用_mongodb慢查询记录
- struts2的多个文件上传思路,小例子 ,仅供参考
- 悟透JavaScript (强烈推荐)
- 30万奖金等你拿 | “信也科技杯”第五届数据解决方案应用大赛火热报名中!...
- python iter next_python类中的__iter__, __next__与built-in的iter()函数举例
- ARM(IMX6U)裸机按键输入实验(BSP+SDK、GPIO输入与输出、按键消抖)
- [ZJOI2007]矩阵游戏
- 创建vue项目(三)路由跳转、反向代理、本地存储、状态管理
- 路由与交换技术(铺垫内容)
- centos下安装JDK8的方法
- remmima 不能保存_不再使用RememBear密码管理器忘记密码
- opencv+映美相机,从缓冲区中抓图片或者显示视频
- 局域网共享打印机教程
- C语言:用指针求字符串长度
- Java 多线程设计模式
- 我个人总结的Halcon内存管理心得笔记,关于C#/C++内存释放
- UDF函数:对字符串实现sha256加密,返回64位十六进制字符串
- 最牛逼的java代码_分享史上java最牛逼,最简短的代码
- 洛丽运动会 NFT 作品集第一弹
- springboot+dubbo+tomcat部署出错问题