本文為您介紹如何使用TPC-DS對OLAP查詢情境進行效能測試。
TPC-DS簡介
TPC-DS是全球最知名的資料管理系統評測基準標準化組織TPC(事務性管理委員會)制定的標準規範,並由TPC管理測試結果的發布。
本次測試遵循TPC-DS規範構建了24張表,基準測試共包含99個複雜查詢,主要的評價指標為各個查詢的回應時間,即從提交查詢到結果返回所需時間。
本文的TPC-DS的實現基於TPC-DS的基準測試,並不能與發行的TPC-DS基準測試結果相比較,本文中的測試並不符合TPC-DS的基準測試的所有要求。
準備工作
您需要準備OLAP查詢情境所需的基礎環境和TPC-DS資料。
為了減少可能對測試結果有影響的變數,建議每次使用新建立的執行個體進行測試,不要使用升降配的執行個體。
操作步驟 | 操作說明 |
| 登入阿里雲,建立一個ECS執行個體,用於資料產生、向StarRocks匯入資料和用戶端測試。建議規格具體如下:
更多關於建立ECS的操作,請參見執行個體建立方式介紹。 |
| 本次測試BE計算資源配置選擇了8 CU(即8核32 GB)。您可以根據實際業務需求,選擇計算資源配置。 登入阿里雲,進入E-MapReduce控制台的EMR Serverless StarRocks頁面,單擊建立執行個體。 更多關於建立StarRocks執行個體的操作,請參見建立執行個體。 |
| 您需要登入步驟1中建立的ECS執行個體,在節點上執行如下命令下載測試載入器包。 |
操作步驟
步驟一:配置測試載入器包
登入已建立的ECS執行個體,詳情請參見串連ECS執行個體。
執行以下命令,進入測試載入器包目錄。
cd tpcds-poc-1.0執行
vim conf/starrocks.conf命令,根據實際情況修改以下參數。# for mysql cmd mysql_host: fe-c-***-internal.starrocks.aliyuncs.com mysql_port: 9030 mysql_user: admin mysql_password: **** database: tpcds # cluster ports http_port: 8030 be_heartbeat_port: 9050 broker_port: 8000 # benchmark config scale_factor: 3 dataset_generate_path: /mnt/disk1/starrocks-tpcds-benchmark/datasets參數詳細描述如下表所示。
參數
說明
mysql_host
StarRocks執行個體中FE的內網地址。
您可以在StarRocks執行個體的執行個體詳情頁簽的FE詳情地區,查看內網地址。
重要不建議使用公網地址。
mysql_port
StarRocks執行個體中FE的服務連接埠,預設為9030。
您可以在StarRocks執行個體的執行個體詳情頁簽的FE詳情地區,查看查詢連接埠。
mysql_user
StarRocks執行個體的使用者。預設為admin。
mysql_password
StarRocks執行個體使用者的密碼。
database
StarRocks執行個體建立的資料庫名稱,使用預設值即可。
http_port
StarRocks執行個體中FE的HTTP連接埠,預設為8030。
您可以在StarRocks執行個體的執行個體詳情頁簽的FE詳情地區,查看HTTP連接埠。
scale_factor
資料集的比例因素,控制產生資料量的大小。預設值為3,單位為GB。
重要建立執行個體時請關注云盤的容量,避免產生資料集大小超過雲端硬碟容量。
dataset_generate_root_path
存放產生測試資料集的路徑。預設值為/mnt/disk1/starrocks-benchmark/datasets。
步驟二:執行測試
執行以下命令,進行自動化TPC-DS資料載入,此過程會建立資料庫、表、資料集並載入資料,同時也包括執行查詢操作。
cd bin
sh run_tpcds.sh您還可以根據實際需求執行以下操作:
單獨執行查詢操作。
sh run_tpcds.sh query重建測試資料。
sh run_tpcds.sh gen_data如果
gen_data目錄已產生,並需要重新匯入測試資料,可執行以下命令進行重新整理操作。sh run_tpcds.sh reload
步驟三:查看測試結果
查詢命令執行完畢後將直接輸出測試結果。成功執行針對tpcds3資料庫的SQL查詢測試,得到99個查詢的執行時間結果如下所示。
查詢的資料庫名稱:tpcds3
SQL Time(ms)
Query01 34
Query02 36
Query03 26
Query04 57
Query05 40
Query06 29
Query07 35
Query08 33
Query09 31
Query10 33
Query11 45
Query12 26
Query13 31
Query14 91
Query15 29
Query16 50
Query17 36
Query18 33
Query19 31
Query20 32
Query21 32
Query22 33
Query23 67
Query24 39
Query25 32
Query26 36
Query27 32
Query28 32
Query29 33
Query30 37
Query31 46
Query32 32
Query33 52
Query34 33
Query35 35
Query36 30
Query37 31
Query38 37
Query39 33
Query40 36
Query41 34
Query42 25
Query43 31
Query44 30
Query45 27
Query46 33
Query47 50
Query48 36
Query49 49
Query50 38
Query51 30
Query52 26
Query53 32
Query54 32
Query55 27
Query56 49
Query57 41
Query58 37
Query59 37
Query60 48
Query61 32
Query62 42
Query63 34
Query64 130
Query65 29
Query66 87
Query67 31
Query68 33
Query69 40
Query70 34
Query71 29
Query72 32
Query73 28
Query74 40
Query75 48
Query76 28
Query77 40
Query78 36
Query79 29
Query80 120
Query81 36
Query82 28
Query83 39
Query84 26
Query85 37
Query86 28
Query87 32
Query88 46
Query89 32
Query90 28
Query91 32
Query92 35
Query93 29
Query94 65
Query95 57
Query96 27
Query97 29
Query98 25
Query99 38
All time(ms): 3799