このトピックでは、Star Schema Benchmark (SSB) を使用してオンライン分析処理 (OLAP) クエリシナリオのパフォーマンス テストを実行する方法について説明します。
SSB の概要
SSB は、データウェアハウスおよび OLAP システムのパフォーマンスを評価するために使用されるベンチマークです。Date、Customer、Supplier、Part、Lineorder の 5 つのテーブルで構成される典型的なスタースキーマのデータモデルをシミュレートします。さらに、SSB では必要に応じてデータモデルをカスタマイズできます。たとえば、スタースキーマをワイドテーブルスキーマに変換できます。
SSB ベンチマークは、事前定義された一連のクエリパターンを実行することで、データウェアハウスまたは OLAP システムのパフォーマンスメトリックを評価します。これらのメトリックには、クエリ応答時間、同時処理能力、データロード、クエリ最適化などが含まれます。
このトピックにおける SSB の実装は SSB ベンチマークに基づいています。したがって、この結果は、公開されている SSB ベンチマークの結果とは比較できません。
シナリオの説明
このテストシナリオでは、SSB 生成ツールはスケールファクター (SF) を使用して生成するデータ量を制御します。1 SF は 1 GB のデータに相当します。
このデータ量は生データのみを指し、インデックス用のスペースは含まれません。環境を準備する際は、追加のスペースを確保してください。
事前準備
OLAP クエリシナリオに必要な基本環境を準備します。
テスト結果に影響を与える可能性のある変数を減らすため、各テストには新しく作成したインスタンスを使用してください。スペックアップまたはスペックダウンされたインスタンスは使用しないでください。
手順 | 手順 |
| Alibaba Cloud コンソールにログインし、Elastic Compute Service (ECS) インスタンスを作成します。このインスタンスは、データの生成、StarRocks へのデータのインポート、クライアントテストの実行に使用されます。推奨される仕様は次のとおりです:
ECS インスタンスの作成方法の詳細については、「インスタンスの作成」をご参照ください。 |
| このテストでは、バックエンド (BE) の計算リソースは 8 コンピューティングユニット (CU) (8 コア、32 GB メモリ) に設定されています。必要に応じて計算リソースを設定してください。 Alibaba Cloud にログインし、E-MapReduce コンソール の EMR Serverless StarRocks ページに移動し、[インスタンスの作成] をクリックします。 StarRocks インスタンスの作成方法の詳細については、「インスタンスの作成」をご参照ください。 |
| ステップ 1 で作成した ECS インスタンスにログインします。ノードで次のコマンドを実行して、テストツールキットをダウンロードします。 |
手順
ステップ 1:テストツールキットの設定
作成した ECS インスタンスにログインします。詳細については、「ECS インスタンスへの接続」をご参照ください。
次のコマンドを実行して、starrocks-ssb-benchmark-for-serverless ディレクトリに移動します。
cd starrocks-ssb-benchmark-for-serverlessvim 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 # Specifies whether to enable the bitmap index. bitmap_index: false # benchmark config scale_factor: 1 dataset_generate_root_path: /mnt/disk1/starrocks-benchmark/datasets次の表に、パラメーターを示します。
パラメーター
説明
mysql_host
StarRocks インスタンスのフロントエンド (FE) のプライベートエンドポイント。
StarRocks インスタンスの インスタンス詳細 タブの FE 詳細 セクションで プライベートエンドポイント を確認します。
重要パブリックエンドポイントは使用しないでください。
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
ビットマップインデックス機能を有効にするかどうかを指定します。有効な値は true と false です。
ビットマップインデックス機能を有効にすると、特に Q2.2、Q2.3、Q3.3 などの特定のクエリパターンに対して、より効率的なクエリパフォーマンスを提供できます。
http_port
StarRocks インスタンスの FE の HTTP ポート。デフォルト値は 8030 です。
StarRocks インスタンスの インスタンス詳細 タブの FE 詳細 セクションで HTTP ポート を確認します。
ステップ 2:テストデータの生成
次のコマンドを実行して、SSB データを自動的にロードします。
sh ssb_dataload.shこのコマンドは、SSB データロードプロセスを自動化します。このプロセスには、データベース、テーブル、データセットの作成、およびデータのロードが含まれます。
ステップ 3:クエリの実行とテスト結果の表示
次のコマンドを実行して、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