如何运行TPCH和TPCDS
【摘要】 背景如何评估大数据的性能?当前主流的性能测试项有TPCH、TPCDS,其中TPCDS逐渐成了业界公认的性能测试标准。对应的工具包可以在官网上下载(http://www.tpc.org/tpc_documents_current_versions/current_specifications.asp),本文记录了从零开始执行tpch和tpcds测试套的过程。一. 测试前准备OBS的存储成本要远...
背景
如何评估大数据的性能?当前主流的性能测试项有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 $2}' | 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'
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的语句较多,打包在压缩包中)。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
热门文章
评论(0)