如何運行TPCH和TPCDS
背景

如何評估大數據的性能?當前主流的性能測試項有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/\"http://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的語句較多,打包在壓縮包中)。
附件: tpch_sql.txt 9.47KB 下載次數:5次
附件: tpcds.rar 51.99KB 下載次數:4次
云性能測試服務 CPTS 彈性云服務器 ECS
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。