本文為您介紹如何使用Star Schema Benchmark(簡稱SSB)對OLAP查詢情境進行效能測試。
SSB簡介
SSB是一種用於評估資料倉儲和OLAP系統效能的基準測試。它類比了一個典型的星型模式(Star Schema)資料模型,包含了Date(日期表)、Customer(客戶表)、Supplier(供應商表)、Part(產品表)和Lineorder(訂單事實表)這五個表格。此外,SSB允許您根據具體需求對資料模型進行自訂,例如將星型模式轉換為寬表結構。
SSB基準測試是通過執行一系列規定的查詢模式來評估資料倉儲或OLAP系統的效能指標,包括查詢回應時間、並發處理能力、資料載入和查詢最佳化等。
本文的SSB的實現基於SSB的基準測試,並不能與發行的SSB基準測試結果相比較。
情境說明
本測試情境中SSB的產生工具中使用SF(scale factor)控制產生資料量的大小,1SF對應1 GB。
以上資料量僅針對未經處理資料的資料量,不包括索引等空間佔用,因此在準備環境時,您需要預留更多的空間。
準備工作
您需要準備OLAP查詢情境所需的基礎環境。
為了減少可能對測試結果有影響的變數,建議每次使用新建立的執行個體進行測試,不要使用升降配的執行個體。
操作步驟 | 操作說明 |
| 登入阿里雲,建立一個ECS執行個體,用於資料產生、向StarRocks匯入資料和用戶端測試。建議規格具體如下:
更多關於建立ECS的操作,請參見建立執行個體。 |
| 本次測試BE計算資源配置選擇了8 CU(即8核32 GB)。您可以根據實際業務需求,選擇計算資源配置。 登入阿里雲,進入E-MapReduce控制台的EMR Serverless StarRocks頁面,單擊建立執行個體。 更多關於建立StarRocks執行個體的操作,請參見建立執行個體。 |
| 您需要登入步驟1中建立的ECS執行個體,在節點上執行如下命令下載測試載入器包。 |
操作步驟
步驟一:配置測試載入器包
登入已建立的ECS執行個體,詳情請參見串連ECS執行個體。
執行以下命令,進入starrocks-ssb-benchmark-for-serverless目錄。
cd starrocks-ssb-benchmark-for-serverless執行
vim conf/starrocks.conf命令,根據實際情況修改以下參數。# for mysql cmd mysql_host: fe-c-7b6f92276******-internal.starrocks.aliyuncs.com mysql_port: 9030 mysql_user: admin mysql_password: 1**** database: ssb_sf # cluster ports http_port: 8030 #是否開啟bitmap_index bitmap_index: false # benchmark config scale_factor: 1 dataset_generate_root_path: /mnt/disk1/starrocks-benchmark/datasets參數詳細描述如下表所示。
參數
說明
mysql_host
StarRocks執行個體中FE的內網地址。
您可以在StarRocks執行個體的实例详情頁簽的网关信息地區,查看内网地址。
重要不建議使用公網地址。
mysql_port
StarRocks執行個體中FE的服務連接埠,預設為9030。
您可以在StarRocks執行個體的实例详情頁簽的FE詳情地區,查看查询端口。
mysql_user
StarRocks執行個體的使用者。預設為admin。
mysql_password
StarRocks執行個體使用者的密碼。
database
StarRocks執行個體建立的資料庫名稱,使用預設值即可。
scale_factor
資料集的比例因素,控制產生資料量的大小。預設值為1,單位為GB。
重要建立執行個體時請關注云盤的容量,避免產生資料集大小超過雲端硬碟容量。
dataset_generate_root_path
存放產生測試資料集的路徑。預設值為/mnt/disk1/starrocks-benchmark/datasets。
bitmap_index
是否啟用Bitmap Index功能。取值為true和false。
啟用Bitmap Index功能可以提供更高效的查詢效能,尤其對於一些特定的查詢模式(例如Q2.2,Q2.3,Q3.3等)。
http_port
StarRocks執行個體中FE的HTTP連接埠,預設為8030。
您可以在StarRocks執行個體的实例详情頁簽的FE詳情地區,查看HTTP 端口。
步驟二:產生測試資料
執行以下命令,進行自動化SSB資料載入。
sh ssb_dataload.sh該命令將自動完成SSB資料載入過程,包括資料庫、表和資料集的產生以及載入。
步驟三:執行查詢並查看測試結果
通過執行以下命令,您可以方便地查看SSB測試的概覽結果,並在目前的目錄下產生result.csv檔案,您可以瞭解測試結果的更多資訊。
SSB寬表查詢。
sh ssb_query.sh ssb-flat返回如下資訊。
SQL Time(ms) Q1.1 26 Q1.2 13 Q1.3 20 Q2.1 46 Q2.2 40 Q2.3 26 Q3.1 40 Q3.2 33 Q3.3 30 Q3.4 23 Q4.1 26 Q4.2 30 Q4.3 20 Total 373SSB標準表查詢。
sh ssb_query.sh ssb返回如下資訊。
SQL Time(ms) Q1.1 26 Q1.2 20 Q1.3 23 Q2.1 103 Q2.2 53 Q2.3 50 Q3.1 86 Q3.2 46 Q3.3 46 Q3.4 36 Q4.1 83 Q4.2 63 Q4.3 53 Total 688