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

Realtime Compute for Apache Flink:GeminiStateBackend の構成

最終更新日:Jan 07, 2025

このトピックでは、エンタープライズレベルの状態バックエンドストレージ GeminiStateBackend を使用する場合に構成できるチューニングパラメーターについて説明します。

背景情報

ほとんどのシナリオでは、GeminiStateBackend は、適応型パラメーターチューニング機能に基づいて、手動で構成することなく、パラメーター構成を自動的に調整できます。ビジネスシナリオに基づいて特定の基本構成のみを調整する必要があります。詳細については、基本パラメーターをご参照ください。特定のシナリオでは、パフォーマンスをさらに最適化するようにパラメーターを構成できます。このトピックでは、以下のシナリオにおける特定のパラメーター構成について説明します。

説明

エンタープライズレベルの状態ストレージの詳細については、GeminiStateBackend をご参照ください。エンタープライズレベルの状態ストレージの構成方法の詳細については、状態バックエンドに関連するパラメーターの構成をご参照ください。

基本パラメーター

パラメーター

説明

データ型

デフォルト値

備考

table.exec.state.ttl

SQL デプロイにおける状態データの TTL。

LONG

  • Ververica Runtime(VVR)バージョンが 4.0.12 以降の場合、デフォルト値は 129600000 です。この値は 1.5 日に相当します。

  • VVR バージョンが 4.0.12 より前の場合、このパラメーターはデフォルトで空のままです。これは、状態データが期限切れにならないことを示します。

単位:ミリ秒。たとえば、このパラメーターを 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

セーブポイントの作成中に生成される一時データをローカルディスクに保存するかどうかを指定します。

BOOLEAN

false

有効な値:

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

  • true:DFS とのやり取りを最小限に抑え、セーブポイントの作成を高速化するために、一時データはローカルディスクに保存されます。ローカルディスクのストレージ使用率が 30% 未満で、ローカルディスクに一時データを保存するのに十分な容量がある場合は、このパラメーターを true に設定することをお勧めします。

説明
  • VVR 4.0 以降を使用する Apache Flink 用 Realtime Compute のみ、このパラメーターをサポートしています。

  • セーブポイントの作成速度が遅い場合は、このパラメーターを構成することをお勧めします。

メモリ関連のパラメーター

説明

次の表は、VVR 4.0 以降でのみ構成できるメモリ関連のパラメーターについて説明しています。

パラメーター

説明

データ型

デフォルト値

備考

state.backend.gemini.memory.managed

GeminiStateBackend が管理対象メモリに基づいてメモリを自動的に割り当てるかどうかを指定します。

BOOLEAN

true

有効な値:

  • true:システムは、管理対象メモリとタスクスロットの数に基づいて、各バックエンドのメモリサイズを自動的に計算します。

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

    このパラメーターを false に設定し、WriteBuffer とオフヒープメモリが占有するメモリの合計サイズを指定して、メモリリソースとパフォーマンスを調整できます。

説明
  • デフォルト値を使用することをお勧めします。

  • VVR 4.0.12 以降を使用する Apache Flink 用 Realtime Compute の場合、このパラメーターのデフォルト値は true です。VVR バージョンが 4.0.12 より前の Apache Flink 用 Realtime Compute の場合、このパラメーターのデフォルト値は false です。

state.backend.gemini.total.writebuffer.size

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

STRING

128 MB

このパラメーターは、state.backend.gemini.memory.managed パラメーターが false に設定されている場合に有効になります。それ以外の場合、WriteBuffer が占有するメモリの合計サイズは、管理対象メモリに基づいて自動的に計算されます。

このパラメーターを構成する場合は、このパラメーターの値に単位を追加する必要があります。単位は B、KB、MB、または GB です。

説明
  • 単位は大文字と小文字を区別しません。

  • 値と単位の間にスペースが必要です。

state.backend.gemini.offheap.size

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

説明

GeminiStateBackend によって使用されるオフヒープメモリには、WriteBuffer が占有するメモリは含まれません。

STRING

(なし)

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

このパラメーターを構成する場合は、このパラメーターの値に単位を追加する必要があります。単位は B、KB、MB、または GB です。

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

  • 単位は大文字と小文字を区別しません。

  • 値と単位の間にスペースが必要です。

説明

Apache Flink のチェックポイントと状態バックエンドの基本構成は、GeminiStateBackend にも適用されます。詳細については、チェックポイントと状態バックエンドをご参照ください。

コンピューティングストレージ分離のパラメーター

説明

次の表は、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 です。

説明
  • 単位は大文字と小文字を区別しません。

  • 値と単位の間にスペースが必要です。

説明

オブジェクトストレージサービス(OSS)クライアント SDK は、OSS クライアント SDK がファイルをアップロードする前に、ファイルからローカルディスクにデータを書き込みます。そのため、OSS を DFS として使用する場合、予期しないディスク容量の使用が発生する可能性があります。Flink がセーブポイントを作成する場合、単一の状態バックエンドは 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 以降を使用する Apache Flink 用 Realtime Compute でのみ SPECIFIED_TABLE_ENABLE に設定できます。

説明
  • このパラメーターの値は大文字と小文字を区別します。

  • VVR 4.0.X を使用する Apache Flink 用 Realtime Compute では、デプロイの JOIN 操作の成功率が低く、キーバリューペアの値が高い場合、このパラメーターを GLOBAL_ENABLE に設定してパフォーマンスを向上させることができます。

    JOIN ノードの「受信レコード数」と「送信レコード数」の比率に基づいて、JOIN 操作の成功率を推定できます。

  • VVR 6.0.1 以降を使用する Apache Flink 用 Realtime Compute では、このパラメーターのデフォルト値を保持することをお勧めします。SQL エンジンは、デプロイ演算子の特性に基づいて、キーバリュー分離を自動的に有効にします。

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

キーバリュー分離が有効になった後、キーバリュー分離をトリガーする値のサイズしきい値。

INTEGER

200

値がこのしきい値に達したレコードのキーと値は個別に保存されます。推奨値は 150 ~ 1000 です。JOIN 操作の成功率に基づいて、このパラメーターの値を調整できます。JOIN 操作の成功率が高い場合は、このパラメーターを大きい値に設定できます。

単位:バイト。

説明

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

適応型パラメーターチューニングのパラメーター

説明

次の表は、VVR 4.0.12 以降でのみ構成できる適応型パラメーターチューニングのパラメーターについて説明しています。

パラメーター

説明

データ型

デフォルト値

備考

state.backend.gemini.auto-tune.mode

適応型パラメーターチューニングモード。

STRING

ACTIVE

有効な値:

  • DISABLED:適応型パラメーターチューニングは無効になっています。

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

  • ACTIVE:GeminiStateBackend はデプロイステータスを継続的に監視し、flink-conf.yaml ファイルで構成されていない GeminiStateBackend 関連パラメーターの構成を自動的に調整します。これがデフォルト値です。

  • FORCEFUL:GeminiStateBackend はデプロイステータスを継続的に監視し、flink-conf.yaml ファイルで構成されている GeminiStateBackend 関連パラメーターを含む、パラメーターの構成を自動的に調整します。

説明
  • このパラメーターの値は大文字と小文字を区別しません。

  • デフォルト値を使用することをお勧めします。

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

適応型パラメーターチューニングが有効になっている場合に、パフォーマンス優先モードが使用される期間。

STRING

(なし)

パラメーター名に含まれる文字 x は数字に置き換えることができます。start.x は end.x に対応します。2 つのパラメーターを構成して、複数の期間を指定できます。パラメーターの値は yyyy-MM-dd HH:mm:ss 形式です。

1 秒あたりのトランザクション数(TPS)の要件がパフォーマンスの要件よりも高い場合は、2 つのパラメーターを構成できます。GeminiStateBackend は、これらのパラメーターで指定された期間中に TPS 優先ポリシーを使用して、より高い TPS を実現します。ただし、2 つのパラメーターを構成すると、より多くのリソースが消費されます。リソースとは CPU コアとメモリを指します。

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

  • state.backend.gemini.auto-tune.burst.end.x パラメーターで指定された時刻は、state.backend.gemini.auto-tune.burst.start.x パラメーターで指定された時刻よりも後である必要があります。

  • これらのパラメーターを構成すると、より多くのリソースが消費されます。そのため、これらのパラメーターを構成しないことをお勧めします。

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