两种渠道
a、官网(建议直接跳过~)
地址:http://www.tpc.org/tpc_documents_current_versions/current_specifications.asp
在信息填写正确的情况下,无法下载。看网友的解答,需要用谷歌浏览器才能下载。尝试未果。
b、github上下载
地址: https://github.com/gregrahn/tpcds-kit.git
ps:官方的包生成sql的时候会报错,上面这个大神已经修复。
操作环境:ubuntu 16.04
进入TPC-DS工具包所在目录,由于下载的是源码,需要编译后才能使用。
a、解压
unzip tpcds-kit-master.zip
b、编译
编译之前请确认依赖环境ok
ubuntu:
1 sudo apt-get install gcc make flex bison byacc git
CentOS/RHEL:
1 sudo yum install gcc make flex bison byacc git
tpcds-kit-master/tools make -f Makefile.suite
编译过程中报错:
make: yacc: Command not found。报错是因为yacc没有安装 。
安装yacc
sudo apt-get install -y byacc
再次编译
又报错对‘yy_create_buffer’未定义的引用。对C/C++不熟悉,搜索了一下也没有相关的解答。百思不得其解之下,换了个思路。可能是第一次编译报错生成的错误文件对第二次编译产生的影响。
于是删除解压后的目录,重新编译成功。
如果生成dsdgen和dsqgen且无报错,说明编译成功
ll *gen
第一次使用这个工具我是一脸懵比的。因为官方的文档特喵的根本看不懂。回想一下,你碰到不熟悉的Linux命令是怎么做的?man或者--help,对吧。这里也可以用--help。
先不着急生成数据,看一下帮助信息先。
./dsdgen --help
常用的参数就上面几个。下面我们来生成1G包含所有表的数据。
./dsdgen -scale 1 -dir ../data/
等待dsdgen程序正常退出后,1G数据需要2~3min左右,进入data目录查看生成的数据。
cd ../data
假如只想生成其中某一张表的数据呢?这就需要用到-table参数了,以web_returns表为例。
./dsdgen -scale 1 -dir ../data -table web_returns
报错了,信息如下:
web_returns是子表,它是依赖于父表web_sales的。生成父表的时候也会同时生成子表,我们来验证一下。
./dsdgen -scale 1 -dir ../data -table web_sales
说明一下,最终生成的数据量以少于scale值的。
dsdgen的用法暂时先总结到这里。
4、生成SQL
查询SQL使用dsqgen生成,主要用于测试数据仓库的性能,一共99个。详细用法可以用--help查看帮助信息。这里不做介绍直接生成。
./dsqgen -DIRECTORY ../query_templates/ -TEMPLATE "query1.tpl" -DIALECT netezza -FILTER Y > ../sql/query1.sql
-DIRECTORY:SQL模板的路径
-TEMPLATE:SQL模板的名称
-DIALECT:include query dialect defintions found in.tpl
-FILTER:重定向到标准输出。
查看生成的SQL:
一共有99,每一个都要这样生成多费劲呀。来写个for循环一把生成所有的SQL。
shell版:
#!/bin/sh
for i in `seq 1 99`
do
./dsqgen -DIRECTORY ../query_templates/ -TEMPLATE "query${i}.tpl" -DIALECT netezza -FILTER Y > ../sql/query${i}.sql
done
Python3版:
#coding:utf-8
import os
print("generate query sql")
for i in range(1,100):
tpl = "query"+str(i)+".tpl"
qsql = "query" +str(i) +".sql"
#拼接命令
cmd = "./dsqgen -DIRECTORY ../query_templates/ "+"-TEMPLATE "+tpl+" -DIALECT netezza -FILTER Y > "+"../sql/"+qsql
#print(cmd)
#执行命令
os.system(cmd)
去sql目录下查看刚才生成的SQL:
这种情况下还是shell更快一点。
5、总结
文章名称:Ubuntu环境使用TPC-DS工具生成测试数据
文章分享:http://www.shufengxianlan.com/qtweb/news48/322198.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联