TPC-DS

1、官网下载

http://tpc.org/tpc_documents_current_versions/current_specifications5.asp

2、linux环境安装

解压完成后,进入tools文件夹执行make

[root@node1tpc] cd /tools
[root@node1 tools] make

3、生成数据

在tools目录下使用./dsdgen生成数据。
–help查看帮助

常用:

-DIR 生成目录

-SCALE 数据大小(单位GB)

  • DELIMITER 字段分隔符,默认|

  • TERMINATE 末尾是否有分隔符,参数 Y或者N

例子:在/usr/datas目录下生成分隔符为|且末尾没有分隔符的1GB数据:

./dsdgen -DIR /usr/datas -SCALE 1 -TERMINATE N

这样就可以分别生成测试所需的1GB数据和500GB,数据生成的25张表如下,这就是上述描述的7张事实表,17张纬度表,以及1张版本表dbgen_version.dat。

4、生成sql测试用例

./dsqgen生成sql测试用例

–help 查看帮助

常用:

-input 输入,读取测试用例包含的模板,一般使用/query_templates/templates.lst即可。

-directory 模板所在目录, 一般使用-directory…/query_templates即可。

-dialect 生成某个数据库的语言,可选项可以查看/query_templates目录,有oracle、db2、SqlServer等。

-scale 数据大小(单位G)

./dsqgen -input../query_templates/templates.lst -directory ../query_templates -dialect oracle-scale 1

由此,可以在tools目录下生成一个query_0.sql,即为生成的sql测试用例。
注:
1)
/query_templates目录下的每一个query末尾都要加上:

define _END = “”;
编写shell脚本update_query.sh,并添加如下内容:

#!/bin/bash
 
COUNTER=1
while [ $COUNTER -lt 100 ]
do
echo $COUNTER
echo "define _END = \"\";">>query$COUNTER.tpl
COUNTER=`expr $COUNTER + 1`
done   

将update_query.sh复制到query_template目录下,并执行脚本  ./update_query.sh
2)
生成单独SQL文件

for id in `seq 1 99`; do ./dsqgen -directory ../query_templates -TEMPLATE "query$id.tpl" -dialect oracle -scale 1 -FILTER Y > ./sql/oracle/"query$id.sql"; done

5、 建表语句

/TPCDSVersion1.3.1/tools目录下,tpcds.sql文件里。很多数据平台可能不能直接使用,需要修改。建表语句的修改主要是依据不同环境支持的数据类型修改和一些基础语法修正,还需依照生成的数据的分割符在建表时指定分隔符。

以hive为例:integer改为int,time改为timestamp,去掉NOT NULL,删除primary key,指定分隔符row format delimited fieldsterminated by ‘|’;等等。

6、导入数据

在数据库中执行以下命令,文件地址用绝对路径:

LOAD DATA LOCAL INFILE '/tools/tmp/call_center.dat'
INTO TABLE call_center
CHARACTER SET GBK
FIELDS TERMINATED BY '|'
LINES TERMINATED BY '\n';

7、 测试用例结果

在目录/TPCDSVersion1.3.1/answer_sets下

参考:
https://blog.csdn.net/u011250186/article/details/109285112
https://cloud.tencent.com/developer/news/64209

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值