教你如何优雅的编译和使用TPC-DS工具
一、tpcds工具编译
1. 从tpc官网下载TPC-DS包。
http://www.tpc.org/tpcds/
2. 提交TPC-DS包至linux服务器上。
3. 解压。
unzip tpc-ds2.6.zip
4. 进入目录。
cd v2.6.0/tools
5. 复制Makefile文件。
cp Makefile.suite Makefile
6. 编译工具
make
二、生成查询语句
#----下面是坑,query生成工具调用的模板里面缺少两个宏定义,需要自己补上,可以定义为任意字符串,但推荐下面设置
1. 编辑sql生成模板。
vi ../query_templates/oracle.tpl
2. 新增两个宏定义。
define _BEGIN = "-- start query " + [_QUERY] + " in stream " + [_STREAM] + " using template " + [_TEMPLATE] + " and seed " + [_SEED];
define _END = "-- end query " + [_QUERY] + " in stream " + [_STREAM] + " using template " + [_TEMPLATE];
#----完成填坑
3. 然后就可以生成query了。
./dsqgen -input ../query_templates/templates.lst -directory ../query_templates/ -dialect oracle -scale 10000
参数就不解释了,自个使用-?查询就明白了。
4. And,query生成在哪呢?
查看当前路径下的sql文件,会发现多了一个query_0.sql,就是“这货”了。
ls query_0.sql
三、生成TPC-DS数据
生成数据依赖于dsdgen工具,此外还有一个tpcds.idx的二进制文件
常用的参数:
-scale <n> : n为整数,指定生成数据的规模
-dir <dir> : dir为已存在的目录,指定生成数据文件的存放目录
-parallel <n> : n为整数,指定数据生成多少份
-child <n> : n为整数,指定生成第一几份数据,配合-parallel使用
-delimiter: 指定数据文件字段分隔符
-table <tablename> : 指定生成哪张表数据
注:tpcds共25张表,表名如下:
call_center
catalog_page
customer
customer_address
customer_demographics
date_dim
dbgen_version
store
household_demographics
income_band
inventory
item
promotion
reason
ship_mode
time_dim
warehouse
web_page
web_site
catalog_returns
web_returns
store_returns
catalog_sales
web_sales
store_sales
TPCDS数据主要存在store_sales、store_returns、catalog_sales、catalog_returns、web_sales、web_returns 6个表中,生成数据时指定store_sales、catalog_sales、web_sales三个表即可,store_returns、catalog_returns、web_returns三个表会随*_sales数据的生成自动生成出来
典型用法:
生成tpcds 100x数据,表store_sales数据文件分为5份,将第一份数据存在在目录/data2/tpcds100x下(根据需要可以适当舍去某些选项)
./dsdgen -scale 100 -dir /data2/tpcds100x -TERMINATE N -parallel 5 -child 1 -force Y -table store_sales
./dsdgen -scale 100 -dir /data2/tpcds100x -TERMINATE N -parallel 5 -child 2 -force Y -table store_sales
./dsdgen -scale 100 -dir /data2/tpcds100x -TERMINATE N -parallel 5 -child 3 -force Y -table store_sales
./dsdgen -scale 100 -dir /data2/tpcds100x -TERMINATE N -parallel 5 -child 4 -force Y -table store_sales
./dsdgen -scale 100 -dir /data2/tpcds100x -TERMINATE N -parallel 5 -child 5 -force Y -table store_sales
想了解GuassDB(DWS)更多信息,欢迎微信搜索“GaussDB DWS”关注微信公众号,和您分享最新最全的PB级数仓黑科技,后台还可获取众多学习资料~
- 点赞
- 收藏
- 关注作者
评论(0)