すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:テストプラン

最終更新日:Jan 11, 2025

このトピックでは、TPC Benchmark DS(TPC-DS)を使用してオンライン分析処理(OLAP)クエリの性能をテストする方法について説明します。

TPC-DS の概要

TPC-DS は、データ管理システムの測定ベンチマークを定義する最も有名な組織である Transaction Processing Performance Council(TPC)によって策定された標準ベンチマークです。このベンチマークの測定結果は TPC によっても公開されています。

このテストでは、TPC-DS ベンチマークテストに従って、24 個のテーブルに対して合計 99 個の複雑な SQL クエリがテストされます。テストは、各クエリの応答時間、つまりクエリを送信してから結果が返されるまでに必要な時間に焦点を当てています。

説明

この例のテストは TPC-DS ベンチマークに基づいて実行されますが、TPC-DS ベンチマークテストのすべての要件を満たしているわけではありません。そのため、この例のテスト結果は、公開されている TPC-DS ベンチマークテストの結果と一致しない場合があります。

準備

OLAP クエリのテストに必要な基本環境と TPC-DS データを準備します。

説明

テスト結果に影響を与える可能性のある変数を減らすために、既存のインスタンスの仕様をアップグレードまたはダウングレードするのではなく、テストを実行するたびに新しいインスタンスを使用することをお勧めします。

手順

説明

  1. Elastic Compute Service(ECS)インスタンスを作成します。

Alibaba Cloud 管理コンソールにログインし、ECS インスタンスを作成します。ECS インスタンスは、データの生成、StarRocks へのデータのインポート、およびクライアントのテストに使用されます。次の要件を満たす ECS インスタンスを作成することをお勧めします。

  • オペレーティングシステム: CentOS または Alibaba Cloud Linux。

  • データディスク: エンタープライズ SSD(ESSD)。テストで使用するデータ量に基づいて容量を決定できます。

  • リージョンと VPC: ECS インスタンスと使用する E-MapReduce(EMR)Serverless StarRocks インスタンスが同じリージョンにあり、同じ仮想プライベートクラウド(VPC)を使用して接続されていることを確認します。

  • パブリック IP アドレス: パブリック IP アドレスは ECS インスタンスに割り当てられている必要があります。

詳細については、「インスタンスの作成」をご参照ください。

  1. EMR Serverless StarRocks インスタンスを作成します。

このテストでは、8 個のコンピュートユニット(CU)を持つバックエンド(BE)が使用されます。これは、EMR Serverless StarRocks インスタンスが 8 個の CPU コアと 32 GB のメモリで構成されていることを示します。ビジネス要件に基づいてコンピューティングリソースを構成することもできます。

EMRコンソール にログオンします。左側のナビゲーションペインで、EMR Serverless > StarRocks を選択します。[インスタンス] タブで、[インスタンスの作成] をクリックします。

詳細については、「インスタンスの作成」をご参照ください。

  1. StarRocks のベンチマークテストパッケージをダウンロードして解凍します。

手順 1 で作成した ECS インスタンスにログインし、ECS インスタンスで次のコマンドを実行してベンチマークテストパッケージをダウンロードします。

sudo wget https://starrocks-oss.oss-cn-beijing.aliyuncs.com/public-access/starrocks-tpcds-benchmark-for-serverless.zip
sudo yum install -y unzip
unzip starrocks-tpcds-benchmark-for-serverless.zip

手順

手順 1: テストパッケージを構成する

  1. 作成した ECS インスタンスにログインします。詳細については、「インスタンスへの接続」をご参照ください。

  2. 次のコマンドを実行して、テストパッケージが保存されているディレクトリに移動します。

    cd tpcds-poc-1.0
  3. vim conf/starrocks.conf コマンドを実行し、ビジネス要件に基づいて次のパラメーターを変更します。

    # for mysql cmd // mysql コマンドの場合
    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

    EMR Serverless StarRocks インスタンス上のフロントエンド(FE)の内部エンドポイント。

    EMR Serverless StarRocks インスタンスの [インスタンスの詳細] タブに移動して、[FE の詳細] セクションでインスタンスの [内部エンドポイント] を表示できます。

    重要

    パブリックエンドポイントを使用しないことをお勧めします。

    mysql_port

    EMR Serverless StarRocks インスタンス上の FE のクエリポート。デフォルト値: 9030。

    EMR Serverless StarRocks インスタンスの [インスタンスの詳細] タブに移動して、[FE の詳細] セクションでインスタンスの [クエリポート] を表示できます。

    mysql_user

    EMR Serverless StarRocks インスタンスにログインするために使用するユーザー名。デフォルト値: admin。

    mysql_password

    EMR Serverless StarRocks インスタンスにログインするために使用するパスワード。

    database

    EMR Serverless StarRocks インスタンス用に作成されたデータベースの名前。デフォルト値を使用します。

    http_port

    EMR Serverless StarRocks インスタンス上の FE の HTTP ポート。デフォルト値: 8030。

    [インスタンスの詳細] タブに移動して、[FE の詳細] セクションでインスタンスの [HTTP ポート] を表示できます。

    scale_factor

    テストデータセットのスケールファクター(SF)。生成されるデータ量を制御します。デフォルト値: 3。単位: GB。

    重要

    EMR Serverless StarRocks インスタンスを作成するときは、ディスクの容量が生成されるテストデータセットのサイズよりも大きいことを確認してください。

    dataset_generate_root_path

    生成されたテストデータセットが保存されるパス。デフォルト値: /mnt/disk1/starrocks-benchmark/datasets

手順 2: テストを実行する

次のコマンドを実行して、自動 TPC-DS テストを有効にします。自動 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

手順 3: テスト結果を表示する

テスト結果は、クエリの実行後に直接返されます。SQL クエリは tpcds3 という名前のデータベースで実行されます。次の結果は、99 個のクエリの応答時間を示しています。

Database from which data is queried: tpcds3 // データが照会されるデータベース: 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 // 合計時間 (ミリ秒): 3799