如何运行TPCH和TPCDS

网友投稿 945 2022-05-28

背景

如何评估大数据的性能?当前主流的性能测试项有TPCH、TPCDS,其中TPCDS逐渐成了业界公认的性能测试标准。对应的工具包可以在官网上下载(http://www.tpc.org/tpc_documents_current_versions/current_specifications.asp),本文记录了从零开始执行tpch和tpcds测试套的过程。

一. 测试前准备

OBS的存储成本要远低于普通磁盘,通常我们先买一台ECS,通过tpch和tpcds上找到的工具生成数据,然后传到obs桶上

1. 购买1台ecs,由于性能测试需要的数据量较大,需要添加数据盘。而数据盘要格式化之后才能使用。可参考ecs的资料https://support.huaweicloud.com/qs-ecs/zh-cn_topic_0085634797.html

fdisk -u /dev/vdb      p n p ... w      mkfs.ext4 /dev/vdb1      cp /etc/fstab /etc/fstab.bak      echo `blkid /dev/vdb1 | awk '{print }' | sed 's/\"//g'` /mnt ext4 defaults 0 0 >> /etc/fstab      mount /dev/vdb1 /mnt

2. 上传数据生成脚本,生成tpch/tpcds数据

tpch:nohup ./dbgen -s 1000 > temp.log 2>&1 &             tpcds:nohup ./dsdgen -scale 1000 > temp.log 2>&1 &

由于数据生成工具只能占用单核cpu,整体生成速度会很慢,可以通过分片参数,起多个任务来加速数据生成。

for((i=1;i<=38;i++));         do         nohup ./dsdgen -scale 1000 -dir /data1/tpcds/tpcds1000x -TERMINATE N -parallel 38 -child $i -force Y -table web_sales &     done

3. 将生成的数据传到obs

wget https://obs-community.obs.cn-east-3.myhuaweicloud.com/obsutil/current/obsutil_linux_amd64.tar.gz      ./obsutil config -i=***ak****  -k=***sk****-e=obs.cn-east-3.myhuaweicloud.com      ./obsutil cp obs://dli/metadata_test/a=1/ obs://dli/metadata_test/a=999/ -r -flat -f

二. 在DLI上执行性能测试

数据准备后,就可以开始准备执行性能测试。这里以DLI数据湖探索(https://console.huaweicloud.com/dli/)为例。

1. 创建表,建表语句从工具生成的列表拿到后,需要做一些修改:

1.1 指定数据格式csv

1.2 指定数据位置:path 'obs://bucket-name/tpch/lineitem'

如何运行TPCH和TPCDS

1.3 指定分隔符:工具在默认情况下是通过“|”来分隔数据的,指定delimiter="|"

create table LINEITEM (               L_ORDERKEY BIGINT,               L_PARTKEY BIGINT,               L_SUPPKEY BIGINT,               L_LINENUMBER INTEGER,               L_QUANTITY DECIMAL(15, 2),               L_EXTENDEDPRICE DECIMAL(15, 2),               L_DISCOUNT DECIMAL(15, 2),               L_TAX DECIMAL(15, 2),               L_RETURNFLAG string,               L_LINESTATUS string,               L_SHIPDATE DATE,               L_COMMITDATE DATE,               L_RECEIPTDATE DATE,               L_SHIPINSTRUCT string,               L_SHIPMODE string,               L_COMMENT string           ) using csv OPTIONS(path 'obs://bucket-name/tpch/lineitem',delimiter="|");

2. 使用csv的表,使用成本和计算成本都会比压缩格式高很多,通常需要转换成parquet或者carbon格式

create table LINEITEM (               L_ORDERKEY BIGINT,               L_PARTKEY BIGINT,               L_SUPPKEY BIGINT,               L_LINENUMBER INTEGER,               L_QUANTITY DECIMAL(15, 2),               L_EXTENDEDPRICE DECIMAL(15, 2),               L_DISCOUNT DECIMAL(15, 2),               L_TAX DECIMAL(15, 2),               L_RETURNFLAG string,               L_LINESTATUS string,               L_SHIPDATE DATE,               L_COMMITDATE DATE,               L_RECEIPTDATE DATE,               L_SHIPINSTRUCT string,               L_SHIPMODE string,               L_COMMENT string           ) using parquet

3. 然后将数据插入压缩格式对应的新表中

insert overwrite table lineitem select * from tpch.lineitem;

4. 然后依次执行tpch、tpcds中的sql语句,可以参考附件tpch_sql.txt,tpcds.rar(由于tpcds的语句较多,打包在压缩包中)。

附件: tpch_sql.txt 9.47KB 下载次数:5次

附件: tpcds.rar 51.99KB 下载次数:4次

云性能测试服务 CPTS 弹性云服务器 ECS

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java入门之~流程控制语句
下一篇:[跟着官方文档学Selenium][学习笔记][八][WebDriver的Actions接口]
相关文章