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

Realtime Compute for Apache Flink:性能ホワイトペーパー: Nexmark ベンチマーク

最終更新日:Mar 31, 2026

このドキュメントでは、Nexmark ベンチマークスイートを使用して、Realtime Compute for Apache Flink のストリーム処理性能を評価する方法について説明します。

性能概要

Nexmark は、ストリーム処理エンジン向けの業界標準ベンチマークスイートです。フィルタリング、集約、JOIN、ウィンドウなどの一般的なシナリオをカバーする 21 のクエリが含まれています。このドキュメントでは、Nexmark ベンチマークスイート、8 CU 構成、および1 億の入力レコードのベースラインを使用して、Realtime Compute for Apache Flink の包括的な性能評価を提示します。結果は次のとおりです。

  • q0、q1、q2 などのシンプルなクエリの RPS は、400 万から 650 万に達する可能性があります。

  • q4、q5、q16 などの複雑な集約およびウィンドウクエリの RPS は、15 万から 63 万の範囲です。

テストツール

Nexmark は、ストリーム処理エンジン向けの標準的な性能ベンチマークスイートです。テストモデルは次のとおりです。

  • Nexmark ソーステーブル: 指定されたレートでテストデータ (Person、Auction、Bid イベント) を生成します。

  • 変換: フィルタリング、変換、集約、JOIN、ウィンドウなどの一般的なシナリオをカバーする 21 の標準 Nexmark クエリ。

  • ブラックホール結果テーブル: 外部ストレージからの性能干渉を排除するために、データをブラックホールシンクに書き込み、Flink エンジンの処理能力に評価を集中させます。

このドキュメントで使用されている Nexmark テストツールは、Realtime Compute for Apache Flink の OpenAPI 上に構築されています。ジョブ作成、デプロイメント、ランタイムモニタリング、結果収集を含む完全なワークフローを自動化します。SQL を手動で記述したり、コンソールでジョブを作成したりする必要はありません。

テスト環境

このテストの Flink ジョブでは、次の最適化構成が使用されました。

パラメーター

説明

table.exec.mini-batch.enabled

true

ミニバッチ集約を有効にします。

table.exec.mini-batch.allow-latency

2s

ミニバッチのバッファリング間隔。

table.optimizer.distinct-agg.split.enabled

true

Distinct 集約の分割最適化を有効にします。

execution.checkpointing.interval

3min

チェックポイント間隔。

前提条件

  • Java Development Kit (JDK) 1.8.x 以降。

  • アクティブなワークスペース。詳細については、「Realtime Compute for Apache Flink のアクティブ化」をご参照ください。

  • ご利用の Alibaba Cloud アカウントの AccessKey ID と AccessKey Secret。

操作手順

ステップ 1: テストツールのダウンロード

Nexmark テストツールパッケージ nexmark-flink.tar.gz をダウンロードして展開します。

展開後、ディレクトリ構造は次のとおりです。

nexmark-flink/
├── run_nexmark.sh          # テストエントリスクリプト
├── nexmark_env.sh          # 環境変数構成ファイル (編集が必要)
├── bin/                    # ランタイムスクリプト
├── conf/                   # Flink ジョブ構成
├── lib/                    # JAR パッケージ (コンソールにアップロード)
└── queries-vvp/            # Nexmark クエリ SQL ファイル

ステップ 2: Nexmark JAR のアップロード

  1. Realtime Compute for Apache Flink コンソールにログインします。

  2. クリックして対象の名前空間に移動し、左側のナビゲーションバーで [ファイル管理] > [リソースのアップロード] を選択します。

  3. nexmark-flink-0.2-SNAPSHOT.jar ファイルを選択してアップロードします。このファイルは、テストツールの nexmark-flink/lib ディレクトリにあります。

  4. アップロードが完了したら、ファイル名をクリックしてその OSS パスをコピーします。このパスは後のステップでパラメーターとして必要になります。ファイルパスの形式はストレージタイプによって異なります。

    • OSS バケットストレージ: oss://<your-bucket-name>/artifacts/namespaces/<your-namespace>/<your-file-name>

      例: oss://oss-test/artifacts/namespaces/flink-default/nexmark-flink-0.2-SNAPSHOT.jar
    • フルマネージドストレージ: oss://flink-fullymanaged-<your-workspace-id>/artifacts/namespaces/<your-namespace>/<your-file-name>

      例: oss://flink-fullymanaged-e6a123456789/artifacts/namespaces/flink-default/nexmark-flink-0.2-SNAPSHOT.jar

    ワークスペースのストレージタイプを表示するには、Realtime Compute for Apache Flink コンソールに移動し、対象のワークスペースを見つけ、[アクション] 列の [詳細] をクリックします。

ステップ 3: ランタイムパラメーターの構成

nexmark-flink/nexmark_env.sh ファイルを編集し、次のパラメーターを構成します。

パラメーター

説明

END_POINT

Realtime Compute for Apache Flink のサービスエンドポイント。ご利用のリージョンに基づいてエンドポイントを選択します。詳細については、「サービスエンドポイント」をご参照ください。

ververica.cn-hangzhou.aliyuncs.com

AK

ご利用の Alibaba Cloud アカウントの AccessKey ID。

-

SK

ご利用の Alibaba Cloud アカウントの AccessKey Secret。

-

WORK_SPACE

ご利用のワークスペース ID。

e6a123456789

NAMESPACE

ご利用のワークスペースの名前空間。

flink-default

NE*******AR

ステップ 2 でアップロードした JAR パッケージの OSS パス。

oss://flink-fullymanaged-e6a123456789/artifacts/namespaces/flink-default/nexmark-flink-0.2-SNAPSHOT.jar

FLINK_VERSION

テストする Flink エンジンバージョン。

vvr-11.6-jdk11-flink-1.20

QUERIES

実行するクエリ。複数のクエリをコンマで区切ります (例: q0 または q1,q2,q3)。すべてのクエリを実行するには、このパラメーターを all に設定します。

all

説明

すべてのクエリを実行すると時間がかかる場合があります。各クエリには、ジョブ作成、データ生成、計算などのステージが含まれます。完全なテストスイートを実行する前に、まず単一のクエリ (例: QUERIES を q0 に設定) を実行して、環境とパラメーターが正しく構成されていることを確認することを推奨します。

ステップ 4: テストの実行

  1. nexmark-flink ディレクトリで、次のコマンドを実行します。

    ./run_nexmark.sh
  2. テストツールは OpenAPI を使用して Nexmark ジョブを自動的に作成および実行します。

  3. テストが完了すると、出力には各クエリの持続時間 (ミリ秒単位) が表示されます。出力例:

    INFO  com.github.nexmark.flink.vvp.Nexmark - q0 13078
    ============================================================================
    ✓ Benchmark execution completed successfully
    ============================================================================

性能結果

次の表は、8 CU 構成の Realtime Compute for Apache Flink における 21 の Nexmark クエリの性能結果を示しています。各クエリは 1 億の入力レコードを処理しました。RPS は、入力レコード数を持続時間で割ることによって計算されます。

説明

次のデータは、特定のテスト環境で収集されました。実際の性能は、ハードウェアおよびエンジンアップデートによって異なる場合があります。結果は参考用です。

クエリ

持続時間 (ミリ秒)

RPS

q0

23450

4,264,392

q1

22824

4,381,353

q2

15224

6,568,576

q3

21558

4,638,649

q4

157117

636,468

q5

679277

147,215

q7

333837

299,547

q8

29939

3,340,125

q9

266563

375,146

q10

51202

1,953,049

q11

145983

685,011

q12

36991

2,703,360

q14

20012

4,997,002

q15

42734

2,340,057

q16

337293

296,478

q17

27076

3,693,308

q18

96335

1,038,044

q19

95121

1,051,293

q20

231482

431,999

q21

39693

2,519,336

q22

31228

3,202,254