對HAWQ進行TPC DS測試

2021-07-26 02:44:35 字數 4237 閱讀 5247

建立資料夾,把tpc工具放入

cd /tpcds/v2.1.0/tools/

./dsdgen -dir /opt/3t_data -scale 3000-parallel 20 -child 20 -terminate n

[root@node2 /]# mkdir tpcds_3t

[root@node2 /]# ls

bin  boot  cgroups_test  dev  etc  hadoop  home  lib  lib64  lost+found  media  mnt  opt  proc  root  sbin  selinux  srv  sys  tmp  tpcds_3t  usr  var

[root@node2 /]# cd tpcds_3t

[root@node2 tpcds_3t]# ls

dstools.zip

[root@node2 tpcds_3t]#

解壓工具包,進入tools編譯

[root@node2 tpcds_3t]# unzip dstools.zip

[root@node2 tpcds_3t]# ls

dstools.zip  tpcdsversion1.3.1

[root@node2 tpcds_3t]# cd tpcdsversion1.3.1/

[root@node2 tpcdsversion1.3.1]# ls

answer_sets  dbgen2  query_templates  query_variants  specification  tools

[root@node2 tpcdsversion1.3.1]# cd tools

[root@node2 tools]# make

[root@node2 tools]# ./dsqgen –help

多執行緒生成資料,後台執行

nohup ./dsdgen -dir /opt/3t_data -scale 3000 -parallel 30 -child 1  -terminate n &

檢視後台程序

jobs –l

修改query_template下query1-99模板,在行尾加define _end = "";

#!/bin/bash

counter=1

while [ $counter -lt 100 ]

doecho $counter

echo "define _end = \"\";">>query$counter.tpl

counter=`expr $counter + 1`

done

生成查詢語句

./dsqgen -output_dir /opt/tpc_3t_queries/ -input /tpcds_3t/tpcdsversion1.3.1/query_templates/templates.lst -scale 3000 -dialect ansi -directory /tpcds_3t/tpcdsversion1.3.1/query_templates -rngseed 05092045000

[root@node2 tools]# su gpadmin

[gpadmin@node2 tools]$ psql

psql (8.2.15)

type "help" for help.

gpadmin=#

gpadmin=# create database tpcds_3t;

create database

gpadmin=# \l

list of databases

name    |  owner  | encoding | access privileges

gpadmin   | gpadmin | utf8     |

postgres  | gpadmin | utf8     |

template0 | gpadmin | utf8     |

template1 | gpadmin | utf8     |

tpcds     | gpadmin | utf8     |

tpch      | gpadmin | utf8     |

(6 rows)

gpadmin=# \c tpcds

you are now connected to database "tpcds" as user "gpadmin".

tpcds=#

生成表tpcds=# \d

list of relations

schema |         name          | type  |  owner  |   storage  

(16 rows)

拷貝yaml檔案到資料路徑

[root@node2 ds_data]# pwd

/opt/ds_data

[root@node2 ds_data]# ls –s

批量修改yaml檔案(資料庫名、埠號,資料路徑,資料檔名等)

[root@node2 ds_data]# sed -i 's/5432/5430/g' *.yaml

載入表[root@node2 ds_data]# gpload -f call_center.yaml

2016-05-06 16:14:39|info|gpload session started 2016-05-06 16:14:39

2016-05-06 16:14:39|info|setting schema 'public' for table 'call_center'

2016-05-06 16:14:39|info|started gpfdist -p 8081 -p 8082 -f "data1g/call_center.dat" -t 30

2016-05-06 16:14:46|info|running time: 6.75 seconds

2016-05-06 16:14:46|info|rows inserted          = 6

2016-05-06 16:14:46|info|rows updated           = 0

2016-05-06 16:14:46|info|data formatting errors = 0

2016-05-06 16:14:46|info|gpload succeeded

[root@node2 ds_data]#

批量載入指令碼

#!/bin/bash

for f in *.yaml

dogpload -f $f

done

載入後檢視表大小

select relname, 

pg_size_pretty(pg_relation_size(relname)) 

from pg_stat_user_tables 

where schemaname = 'public' 

order by pg_relation_size(relname) desc; 

生成99條sql的日誌檔案

#!/bin/bash

counter=1

while [ $counter -lt 100 ]

doecho $counter

touch query$counter.log

chown gpadmin query$counter.log

counter=`expr $counter + 1`

done

在每一條sql之前加入\timing

[root@node2 query_templates]#

sed -i -e '1i\\\timing' query*

執行sql批處理

#!/bin/bash

time

for f in query*

dolog=$".log"

echo $log

psql -d tpcds -f $f > $log;

done

[gpadmin@node2 query_templates]$ ./sql.sh

合併測試結果

[root@node2 query_templates]# cat query*.log > 1g_result.log

執行完成後清除快取

free –m

echo 3 > /proc/sys/vm/drop_caches

表載入,載入機傳送速率約120mb,接收速率約50mb(這樣至少要

8個小時,為什麼不切割加?)

對多執行緒進行測試

在junit下,很難對多執行緒的 進行測試,因此需要借助其他的方式,比如executor service框架.最近要對乙個監控類的輸出情況寫乙個測試,簡單的跑一下輸出格式是否跟預期一致.我這裡借助了threadpoolexecutor completionservice.即在結束前,需要從執行緒池中...

如何對測試物件進行定位

首先,謝謝的分享。花了2周時間,看了幾本關於這方面的書,基本走完了selenium python webdriver的第一遍,目前能夠搭建環境,做到對任何網頁的控制項定位以及進行自動化測試,並能夠實現將測試結果生成測試報告以及資料引數化等知識點。前面幾篇博文是親自動手反覆實現過。通過實踐練習,對we...

用MockMvc對介面進行測試

為什麼使用mockmvc?業務角度 在基於springboot開發介面的過程中,測試時必不可少的,起初我們開發人員常用的測試工具是 postman swagger 在我們公司一般使用的是swagger測試,通過構造param引數,請求頭傳參等,請求目標介面獲取返回的content,一般都是肉眼去檢視...