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