1. 程式人生 > 其它 >【TPC-H】測試知識點總結(重要)

【TPC-H】測試知識點總結(重要)

學習的資料

最新版本下載:https://www.tpc.org/tpc_documents_current_versions/current_specifications5.asp

還待驗證:https://cloud.tencent.com/developer/article/1344308

2.0版本的標準中文版解讀官方文件:https://max.book118.com/html/2018/0716/8016002101001115.shtm

介紹TPC-H:https://blog.csdn.net/woshisap/article/details/44427899

 預設query語句存放的路徑:tpch-tool/dbgen/queries

生成資料

   進入 tpch-tool/dbgen中執行如下命名

time ./dbgen -s 200 -f     生成的資料後顯示耗費的時間(注:【time】記錄生成200GB資料的耗費時間,【f】展示詳細資訊)

./dbgen -vf -s 1         生成1G的資料

./dbgen -v -U 1         生成1G資料量的RF內容

測試策略

1. linux上搭建minio的環境,minio的安裝目錄下新建data/tpc-h-100g,將TPC-H生成的測試資料(nation.tbl)直接複製到minio新建的目錄下即可

2. 通過外表匯入的方式從minio中的資料匯入到AtomData中

a. 建立的表oss_customer與TPC-H中的表customer表字段、表結構與型別均保持一致

CREATE TABLE IF NOT EXISTS tpc-100g.oss_customer

(

    uid string,

    other string

)

ENGINE='OSS'

TABLE_PROPERTIES='{

    "endpoint":"192.168.20.112:9000",

    "url":"oss://test/adb/oss_import_test_data.txt",

    "accessid":"LTAIF****5FsE",

    "accesskey":"Ccw****iWjv",

    "delimiter":";"

}';

1. 再次通過insert into的方式將資料從oss_customer寫入到AtomData的customer表(注意,minio建立的對映表oss_customer會多出一列tmp,因此insert時需要手動寫出每個列)

insert into REGION(R_REGIONKEY,R_NAME,R_COMMENT) select R_REGIONKEY,R_NAME,R_COMMENT from OSS_REGION;

此時就可以計算寫入效能的時間

 

測試注意點

Query15中有creat view和drop view,這部分可以單獨出來寫,query中只寫query不涉及其他,view中的revenue0引數根據streamID變化,query中也注意此引數要修改

正式的查詢測試開始前,先進行3次22條query的執行,將資料預熱,把資料從磁碟寫入到記憶體

RF1測試:測試的過程中可以執行:select count(1)from ORDERS;去檢視資料是否寫入成功,寫入結束會生成記錄表

RF2:測試的過程中無法通過select count(1)from ORDERS;去檢視是否有刪除成功表資料,只有等指令碼執行結束才可以去看

知識點總結

TPC-H更適合OLTP型別的資料庫,RF中包含的insert和delete更貼近於OLTP資料庫的使用

LINEITEM與ORDERS的資料量佔據了整體的83%

TPC-H測試的目的:減少在資訊分析應用中出現操作的多樣性

TPC-H測試模擬了:商用環境的分析端,其他TPC基準模擬的是商用環境的操作端

TPC-H不包含驗證資料庫的連續性。也沒有特定的系統功能可以設定用來測試資料庫的連續性。但是滿足規範中描述的要求也能產生相應的測試結果

官方文件中給出了基數為1G的資料,後續的資料行數row=SF*1G的資料基礎 

 RF1和RF2的測試

 

Refresh Function Definition 

注意事項:

需要手動寫指令碼,來處理RF1和RF2的資料

測試RF1之後注意校驗insert的資料量是否正確,示例驗證點:SF=100,則插入到orders表中的資料等於100*1500=150000行資料,同理驗證lineitem表資料

官方給出的指令碼如下

RF1:向ORDERS 與 LINEITEM表中insert新的資料

LOOP (SF * 1500) TIMES

INSERT a new row into the ORDERS table

LOOP RANDOM(1, 7) TIMES

INSERT a new row into the LINEITEM table

END LOOP

END LOOP

RF2:從ORDERS 與 LINEITEM表中delete舊的資料

LOOP (SF * 1500) TIMES 

DELETE FROM ORDERS WHERE O_ORDERKEY = [value] 

DELETE FROM LINEITEM WHERE L_ORDERKEY = [value] 

END LOOP

文件核心內容解析總結

一、商業和應用環境

1. 適應的行業:汽車租賃、食品銷售、供應商

2. TPC查詢語句的特徵:

a. 非常複雜

b. 各種各樣的訪問模式

c. 帶有隨機特性

d. 檢查可獲得資料的大部分

e. 每個SQL互不相同

f. 含有查詢引數並在執行時變化(注:某些給定的引數可以在query時修改不同的值)

3. 所有查詢回答的商業問題

a. 定價和促銷

b. 供貨和需求管理

c. 利潤和收入管理

d. 顧客滿意度研究

e. 市場份額研究

f. 運輸管理

4. 就按實際