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

Realtime Compute for Apache Flink:ステートバックエンドストレージ

最終更新日:Mar 07, 2026

このトピックでは、エンタープライズレベルのステートバックエンドである GeminiStateBackend のチューニングパラメーターについて説明します。

背景情報

ほとんどのシナリオでは、GeminiStateBackend は適応型チューニング機能を使用してパラメーターを自動的に調整するため、手動で構成する必要はありません。ビジネスシナリオに基づいて、いくつかの基本構成を調整するだけで済みます。詳細については、「基本構成」をご参照ください。特定のシナリオでは、特定の構成を有効にして、対象を絞ったチューニングを行うことができます。例:

  • メモリリソースとパフォーマンスのバランスを取るには、メモリ構成を使用できます。詳細については、「メモリ構成」をご参照ください。

  • ローカルディスク領域が不足した場合は、計算ストレージ分離構成を使用できます。詳細については、「計算ストレージ分離構成」をご参照ください。

  • Join オペレーターでパフォーマンスボトルネックが発生した場合は、キーと値の分離構成を使用できます。詳細については、「キーと値の分離構成」をご参照ください。

説明

エンタープライズレベルのステートバックエンドの概要とその構成方法については、「エンタープライズレベルのステートバックエンドの概要」および「ステート関連パラメーターの設定」をご参照ください。

基本構成

パラメーター

説明

データ型

デフォルト値

注意

table.exec.state.ttl

SQL ジョブのステートの生存時間 (TTL) です。

Long

  • Ververica Runtime (VVR) 4.0.12 以降:1.5 日。

  • VVR 4.0.12 より前のバージョン:Empty (空)。ステートが有効期限切れにならないことを意味します。

単位はミリ秒です。たとえば、値が 129600000 の場合、TTL は 1.5 日であることを意味します。このパラメーターは state.backend.gemini.ttl.ms と併用できません。

説明

必要に応じて短い値を設定してください。

state.backend.gemini.ttl.ms

DataStream または Python ジョブのステートの TTL です。

Long

(なし)

単位はミリ秒です。たとえば、値が 129600000 の場合、TTL は 1.5 日であることを意味します。このパラメーターは table.exec.state.ttl と併用できません。

説明

必要に応じて短い値を設定してください。

state.backend.gemini.savepoint.external-sort.local-storage.enabled

標準ジョブスナップショット中に生成された一時データをローカルディスクに保存するかどうかを指定します。

ブール値

false

有効値:

  • false (デフォルト):一時データは分散ファイルシステム (DFS) に保存されます。

  • true:一時データはローカルディスクに保存されます。これにより、DFS とのやり取りが減り、スナップショットの作成が高速化されます。ローカルディスクに一時データ用の十分な領域がある場合 (ディスク使用率が 30% 未満)、このパラメーターを true に設定します。

説明
  • このパラメーターは VVR 4.0 以降でのみサポートされます。

  • 標準スナップショットの作成が遅い場合は、このパラメーターを有効にすることを検討してください。

メモリ構成

説明

次のメモリ構成パラメーターは VVR 4.0 以降でサポートされています。

パラメーター

説明

データ型

デフォルト値

注意

state.backend.gemini.memory.managed

GeminiStateBackend がマネージドメモリに基づいてメモリを自動的に割り当てるかどうかを指定します。

ブール値

true

有効値:

  • true:システムは、マネージドメモリとタスクスロット数に基づいて、各バックエンドのメモリを自動的に計算します。

  • false:各バックエンドのメモリサイズは、state.backend.gemini.total.writebuffer.size パラメーターと state.backend.gemini.offheap.size パラメーターの値の合計に設定されます。

    メモリリソースとパフォーマンスのバランスを取るには、このパラメーターを false に設定し、WriteBuffer と Offheap のサイズを個別に構成します。

説明
  • デフォルト値のままにすることを推奨します。

  • デフォルト値は、VVR 4.0.12 以降では true、VVR 4.0.12 より前のバージョンでは false です。

state.backend.gemini.total.writebuffer.size

WriteBuffer が占有する合計メモリサイズです。

String

128 MB

このパラメーターは、state.backend.gemini.memory.managedfalse に設定されている場合にのみ有効になります。それ以外の場合、WriteBuffer の合計メモリサイズは、マネージドメモリに基づいて自動的に計算されます。

このパラメーターを構成するときは、単位のサフィックスを追加する必要があります。有効な単位は B、KB、MB、GB です。

説明
  • 単位では大文字と小文字が区別されません。

  • 数値と単位の間にスペースを入れてもかまいません。

state.backend.gemini.offheap.size

GeminiStateBackend によって使用されるオフヒープメモリのサイズです。

説明

Gemini によって使用されるこのオフヒープメモリには、WriteBuffer によって使用される部分は含まれません。

String

(なし)

このパラメーターは、state.backend.gemini.memory.managedfalse に設定されている場合にのみ有効になります。それ以外の場合、GeminiStateBackend によって使用されるオフヒープメモリのサイズは、マネージドメモリに基づいて自動的に計算されます。

このパラメーターを構成するときは、単位のサフィックスを追加する必要があります。有効な単位は B、KB、MB、GB です。

説明
  • デフォルトでは、このパラメーターは構成されていません。

  • 単位では大文字と小文字が区別されません。

  • 数値と単位の間にスペースを入れてもかまいません。

説明

Apache Flink のチェックポイントと StateBackend の基本構成は、GeminiStateBackend にも適用されます。詳細については、「Checkpoints and State Backends」をご参照ください。

計算ストレージ分離構成

説明

次の計算ストレージ分離構成パラメーターは、VVR 4.0.11 以降でサポートされています。

パラメーター

説明

データ型

デフォルト値

注意

state.backend.gemini.file.cache.type

計算ストレージ分離モードです。

String

  • VVR 4.0.11:INFINITE

  • VVR 4.0.12 以降:LIMITED

有効値:

  • INFINITE:計算ストレージ分離を無効にします。ステートデータはローカルにのみ保存されます。

  • LIMITED:ステートデータは最初にローカルに保存されます。ローカルディスクの制限を超えると、ステートデータは DFS に保存されます。

    ステートデータが大きすぎてローカルディスク領域が不足する場合は、このパラメーターを LIMITED に設定します。また、ローカルディスクの制限に基づいて state.backend.gemini.file.cache.preserved-space パラメーターを構成します。

    説明

    値では大文字と小文字が区別されます。

state.backend.gemini.file.cache.preserved-space

単一の TaskManager 上でステートデータに利用可能な残りのディスク領域です。

String

2 GB

実際の空き領域がこの値を下回ると、GeminiStateBackend はステートデータを DFS に保存して、ローカルストレージの制限を克服します。

このパラメーターを構成するときは、単位のサフィックスを追加する必要があります。有効な単位は B、KB、MB、GB です。

説明
  • 単位では大文字と小文字が区別されません。

  • 数値と単位の間にスペースを入れてもかまいません。

説明

分散ファイルシステムとして Object Storage Service (OSS) を使用する場合、OSS クライアント SDK は、アップロードする前にファイル全体をローカルディスクに書き込みます。これにより、予期しないディスク領域の使用が発生する可能性があります。たとえば、Flink がセーブポイントを作成すると、単一の StateBackend はローカルに 1 つの大きな非圧縮ファイルを生成します。このシナリオでは、計算ストレージ分離は効果的ではありません。並列度を上げるなど、他の方法を使用して、シングルノードのステートサイズを削減できます。

キーと値の分離構成

説明

次のキーと値の分離構成パラメーターは、VVR 4.0.12 以降でサポートされています。

パラメーター

説明

データ型

デフォルト値

注意

state.backend.gemini.kv.separate.mode

キーと値の分離モードです。

String

  • VVR 4.0.12 以降の 4.0.x バージョン:DISABLE

  • VVR 6.0.1 以降:SPECIFIED_TABLE_ENABLE

有効値:

  • DISABLE:キーと値の分離を無効にします。

  • GLOBAL_ENABLE:キーと値の分離を有効にします。

  • SPECIFIED_TABLE_ENABLE:エンジンは、ジョブオペレーターの特性に基づいて、キーと値の分離を自動的に有効または無効にします。

    説明

    この値は VVR 6.0.1 以降でサポートされています。

説明
  • 値では大文字と小文字が区別されます。

  • VVR 4.0.x バージョンでは、Join ジョブの結合成功率が低く、値のサイズが大きい場合は、パフォーマンスを向上させるためにこのパラメーターを GLOBAL_ENABLE に設定します。

    Join ノードでの受信レコード数と送信レコード数の比率から結合成功率を推定します。

  • VVR 6.0.1 以降では、デフォルト値をそのまま使用します。SQL エンジンは、ジョブ オペレーターの特性に基づいて自動的にキー値分離を有効にします。

state.backend.gemini.kv.separate.value.size.threshold

キーと値の分離が有効になっている場合、これはキーと値の分離をトリガーする値サイズのしきい値です。

Integer

200

このしきい値に達したレコードは、キーと値が別々に保存されます。推奨される値の範囲は 150 から 1000 です。結合成功率に基づいてこのパラメーターを調整します。結合成功率が高いほど、より大きなパラメーター値を設定できます。

単位はバイトです。

説明

VVR 6.0.1 以降では、適応型チューニングモードを有効にしている場合、エンジンはこのパラメーターをデータ特性に基づいて動的に調整します。明示的に構成する必要はありません。

適応型チューニング構成

説明

次の適応型チューニング構成パラメーターは、VVR 4.0.12 以降でサポートされています。

パラメーター

説明

データ型

デフォルト値

注意

state.backend.gemini.auto-tune.mode

適応型チューニングモードです。

String

ACTIVE

有効値:

  • DISABLED:この機能を無効にします。

  • MONITORING:GeminiStateBackend は実行ステータスを継続的に監視し、ログでチューニングの提案を提供しますが、パラメーターを自動的に調整しません。

  • ACTIVE (デフォルト):GeminiStateBackend は実行ステータスを継続的に監視し、パラメーターを自動的に調整します。これは、flink-conf.yaml で構成されていない一部の Gemini 関連パラメーターにのみ適用されます。

  • FORCEFUL:GeminiStateBackend は実行ステータスを継続的に監視し、パラメーターを自動的に調整し、flink-conf.yaml で構成されている一部の Gemini 関連パラメーターを上書きします。

説明
  • 値では大文字と小文字が区別されません。

  • デフォルト値のままにすることを推奨します。

state.backend.gemini.auto-tune.burst.start.x

適応型チューニングでパフォーマンス優先モードを使用する期間です。

String

(なし)

パラメーター名の `x` は任意の数値です。`start.x` は `end.x` に対応します。これらを使用して、複数の期間を設定できます。パラメーター値のフォーマットは yyyy-MM-dd HH:mm:ss です。

全体的な効率ではなく、より高い秒間トランザクション数 (TPS) が必要な場合は、これら 2 つのパラメーターを構成します。指定された期間中、GeminiStateBackend は TPS 優先ポリシーを使用します。このポリシーは、より高い TPS を達成するために、CPU やメモリなどのより多くのリソースを消費します。

説明
  • デフォルトでは、このパラメーターは構成されていません。

  • 終了時刻は開始時刻より後である必要があります。

  • このパラメーターを設定すると、リソース消費量が増加します。デフォルト設定のまま、つまりこのパラメーターを構成しないことを推奨します。

state.backend.gemini.auto-tune.burst.end.x