Dataflow Prime の使用

Dataflow Prime は、Apache Beam パイプライン用のサーバーレス データ処理プラットフォームです。Dataflow をベースにした Dataflow Prime は、コンピューティングと状態を分離したアーキテクチャを使用しています。また、多くの新機能が搭載されています。Dataflow Prime を使用するパイプラインでは、自動化と最適化が行われたリソース管理や診断機能を利用し、運用コストを削減できます。

Dataflow Prime は、バッチ パイプラインとストリーミング パイプラインの両方をサポートしています。デフォルトでは、Dataflow Prime はバッチジョブに Dataflow Shuffle を使用し、ストリーミング ジョブに Streaming Engine を使用します。

Dataflow Prime は、パイプラインで Dataflow Runner V2 を使用します。

SDK バージョンのサポート

Dataflow Prime は、次の Apache Beam SDK をサポートします。

  • Apache Beam Python SDK バージョン 2.21.0 以降

  • Apache Beam Java SDK バージョン 2.30.0 以降

SDK パッケージをダウンロードするか、リリースノートを確認する場合は、Apache Beam のダウンロードをご覧ください。

Dataflow Prime の機能

Dataflow Prime は、さまざまな種類のパイプラインに対して次の機能をサポートしています。

  • 垂直自動スケーリング(メモリ)。Python のストリーミング パイプラインに適用されます。
  • Right Fitting(Dataflow Prime リソースヒント)。Python と Java のバッチ パイプラインに適用されます。
  • Job Visualizer。Python と Java のバッチ パイプラインに適用されます。
  • スマート推奨事項。Python と Java のストリーミング パイプラインとバッチ パイプラインの両方に適用されます。
  • Data Pipelines。Python と Java のストリーミング パイプラインとバッチ パイプラインの両方に適用されます。

Job Visualizer、スマート推奨事項、Data Pipelines などの機能は、Dataflow Prime 以外のジョブでもサポートされています。

垂直自動スケーリング

この機能により、パイプラインのニーズに合わせて Dataflow ワーカー VM で使用可能なメモリが自動的に調整されます。これにより、メモリ不足エラーを防ぐことができます。Dataflow Prime では、垂直自動スケーリングと水平自動スケーリングが連動して、リソースを動的にスケーリングします。

詳細については、垂直自動スケーリングをご覧ください。

Right Fitting

この機能では、リソースヒントを使用します。リソースヒントは Apache Beam の新機能で、パイプライン全体またはパイプラインの特定のステップのリソース要件を指定できます。Right Fitting 機能を使用すると、パイプラインのステップ用にカスタマイズされたワーカーを作成できます。また、パイプライン リソースを指定することで、効率を最大化し、運用コストを削減できます。また、メモリ不足などのリソースエラーを回避することもできます。

Right Fitting のプレビュー版では、次の点に注意してください。

  • メモリと GPU のリソースヒントをサポートします。

  • Apache Beam 2.30.0 以降が必要です。

詳細については、Dataflow Prime の Right Fitting の構成をご覧ください。

Job Visualizer

この機能を使用すると、Dataflow ジョブのパフォーマンスを確認し、並列化のボトルネックなどの非効率的なコードを見つけることで、ジョブのパフォーマンスを最適化できます。Cloud Console の [ジョブ] ページで Dataflow ジョブをクリックすると、ジョブの詳細が表示されます。パイプラインの各ステージに関連付けられているステップのリストを表示することもできます。

詳しくは、実行の詳細をご覧ください。

スマート推奨事項

この機能を使用すると、ジョブの詳細ページの [診断] タブに表示される推奨事項に基づいてパイプラインを最適化し、トラブルシューティングを行うことができます。Cloud Console の [ジョブ] ページで Dataflow ジョブをクリックすると、ジョブの詳細が表示されます。

詳細については、推奨事項と診断をご覧ください。

Data Pipelines

この機能を使用すると、ジョブのスケジューリング、リソース使用率のモニタリング、ストリーミング データの鮮度目標の追跡、パイプラインの最適化を行うことができます。

詳細については、Data Pipelines の操作をご覧ください。

割り当てと上限の要件

Dataflow と Dataflow Prime に対する割り当てと上限は同じです。詳細については、割り当てと上限をご覧ください。

Data Pipelines を選択した場合、割り当てとリージョン エンドポイントにさらに影響があります。

Dataflow Prime を使用する前に

Dataflow Prime を使用するには、既存のパイプライン コードを再利用し、Cloud Shell またはプログラムで Dataflow Prime の試験運用版オプションを有効にします。

Dataflow Prime には、Dataflow Shuffle を使用するバッチジョブおよび Streaming Engine を使用するストリーミング ジョブと下位互換性があります。ただし、パイプラインを本番環境で使用する前に、Dataflow Prime でパイプラインをテストすることをおすすめします。

ストリーミング パイプラインが本番環境で実行されている場合に Dataflow Prime を使用するには、次の手順を行います。

  1. パイプラインを停止します。

  2. Dataflow Prime を有効にします。

  3. パイプラインを再実行します。

Dataflow Prime の有効化

パイプラインで Dataflow Prime を有効にするには:

  1. Cloud Autoscaling API を有効にします。

    API を有効にする

    Dataflow Prime は Cloud Autoscaling API を使用してメモリを動的に調整します。

  2. パイプライン オプションで Prime を有効にします。

    パイプライン オプションは、プログラムまたはコマンドラインを使用して設定できます。サポートされている Apache Beam SDK のバージョンについては、次のフラグを有効にします。

Java

--dataflowServiceOptions=enable_prime

Python

Apache Beam Python SDK バージョン 2.29.0 以降

--dataflow_service_options=enable_prime

Apache Beam Python SDK バージョン 2.21.0 から 2.28.0:

--experiments=enable_prime

テンプレートでの Dataflow Prime の使用

Dataflow テンプレートを使用している場合は、次のいずれかの方法で Dataflow Prime を有効にすることができます。

Console

  1. [テンプレートからジョブを作成] ページに移動します。

    [テンプレートからジョブを作成] に移動

  2. [Additional experiment] フィールドに「enable_prime」と入力します。

Shell

  • --experiments フラグを enable_prime に設定してパイプライン コードを実行します。

パイプライン コード

  • パイプライン コードで、additional_experiment 引数を enable_prime に設定します。

Dataflow Prime の注意事項

Dataflow Prime は、以下のものをサポートしていません。

  • 言語間変換のリソースヒント。この制限の詳細については、Apache Beam のドキュメントをご覧ください。

  • 特定の VM タイプの指定。Python パイプラインの場合は --worker_machine_type または --machine_type フラグを使用します。Java パイプラインの場合は --workerMachineType フラグを使用します。

  • ワーカー VM の表示または SSH を使用したワーカー VM へのログイン。

  • Java パイプライン用の MapState クラスと OrderedListState クラス。

  • カスタム ウィンドウ タイプ。

  • Flexible Resource Scheduling(FlexRS)

Dataflow と Dataflow Prime の機能比較

次の表では、Dataflow の両方のバリアントで利用可能な機能を比較します。

機能 Dataflow Prime Dataflow
Runner V2 デフォルトの機能。無効にするオプションなし。 オプション機能
バッチジョブの Dataflow Shuffle デフォルトの機能。無効にするオプションなし。 デフォルトの機能。無効にするオプションあり。
Streaming Engine デフォルトの機能。無効にするオプションなし。 Java パイプラインのオプション機能と、Python パイプラインを無効にするオプション。
水平自動スケーリング オプション機能 オプション機能
垂直自動スケーリング デフォルトの機能。無効にするオプションなし。 該当なし
Right Fitting オプション機能 該当なし
Job Visualizer デフォルトの機能。無効にするオプションなし。 デフォルトの機能。無効にするオプションなし。
ジョブ推奨事項 デフォルトの機能。無効にするオプションなし。 デフォルトの機能。無効にするオプションなし。
Data Pipelines オプション機能 オプション機能
料金 サーバーレス課金 従来の課金

次のステップ