教你如何优雅的编译和使用TPC-DS工具

举报
孟婆来碗汤~ 发表于 2021/05/21 16:49:45 2021/05/21
【摘要】 一、tpcds工具编译1. 从tpc官网下载TPC-DS包。http://www.tpc.org/tpcds/2. 提交TPC-DS包至linux服务器上。3. 解压。    unzip  tpc-ds2.6.zip4. 进入目录。    cd v2.6.0/tools5. 复制Makefile文件。    cp Makefile.suite Makefile6. 编译工具    make二...

一、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级数仓黑科技,后台还可获取众多学习资料~

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。