使用TPC_DS产生压测数据
下载TPC-DS压测工具:(测试版本 2.11.0)
http://www.tpc.org/tpc_documents_current_versions/current_specifications5.asp
解压之后在tools目录下执行make进行编译
编译之后使用dsdgen产生数据,其中 -scale 指定产生多大的数据,比如下面产生 1000GB,-parallel指定将数据切成4个片段,-child指定当前产生第几个片段
./dsdgen -dir /home/ec2-user/data/ -scale 1000 -parallel 4 -child 1
./dsdgen -dir /home/ec2-user/data/ -scale 1000 -parallel 4 -child 2
./dsdgen -dir /home/ec2-user/data/ -scale 1000 -parallel 4 -child 3
./dsdgen -dir /home/ec2-user/data/ -scale 1000 -parallel 4 -child 4产生查询脚本:
./dsqgen -output_dir /home/ec2-user/query/ -input ../query_templates/templates.lst -scale 1 -DIALECT netezza -DIRECTORY ../query_templates -QUALIFY y -VERBOSE Y或者用这个方法产生
for id in `seq 1 99`; do ./dsqgen -DIRECTORY ../query_templates -TEMPLATE "query$id.tpl" -DIALECT netezza -FILTER Y > ~/query/"query$id.sql"; done如果遇到_END的报错,那么在../query_templates路径下,对所有的tpl文件后面添加一行: define _END = "";,使用脚本做如下:
ls | while read line; do echo "define _END = \"\";" >> $line; done建表语句
创建表的语句在 tools文件夹下的 tpcds.sql 文件中,以及tpcds_source.sql 文件中
TPC-DS 工具说明
有关工具的使用以及目录结构说明,参考specification文件夹下的 specification.pdf 文件中的表格:Table 0-1 Electronically Available Specification Material
有关产生1G,1T,3T,10T,30T,100T的文件,每个表数据量大小,可以参考 specification文件夹下的 specification.pdf 文件中的 Table 3-2 Database Row Counts 这个表格来对比。
附录:在AWS EMR创建Hive表:
在AWS Global账号下启动过EMR进行测试的命令
创建S3上的表
创建catalog_sales表
创建call_center 表
创建 date_dim 表
创建ship_mode表
创建ware_house表
Last updated