Cloud Dataflow テンプレート

Dataflow テンプレートを使用すると、Cloud Storage 上のパイプラインをステージングして、さまざまな環境で実行できます。テンプレートは、Google 提供のテンプレートを使用することも、自身で作成することもできます。

従来の Dataflow のデプロイと比較すると、テンプレートには次のようなメリットがあります。

  • パイプラインを実行するたびにコードを再コンパイルする必要はありません。
  • パイプラインは、従来のデプロイ環境でよく使用される開発環境や関連する依存関係を使用せずに実行できます。これは、繰り返し実行するバッチジョブをスケジュールする際に便利です。
  • ランタイムのパラメータによってパイプラインの実行をカスタマイズできます。
  • 技術者ではないユーザーでも Google Cloud Console、gcloud コマンドラインツール、または REST API を使用してテンプレートを作成することができます。

従来のジョブ実行とテンプレート化されたジョブ実行の比較

Dataflow テンプレートによって、従来のジョブ実行のワークフローとは異なる、新たな開発と実行のワークフローが採用されました。テンプレートのワークフローでは、ステージングと実行のステップから開発のステップが分離されます。

従来の Cloud Dataflow ジョブ

Apache Beam パイプラインの開発とジョブの実行は、すべて開発環境内で行われます。

従来の Dataflow ジョブの典型的なワークフロー:

  1. 開発者が開発環境を作成し、パイプラインを開発します。環境には、Apache Beam SDK やその他の依存関係が含まれます。
  2. ユーザーは、開発環境からパイプラインを実行します。Apache Beam SDK が Cloud Storage 内のファイルをステージングし、ジョブ リクエスト ファイルを作成し、そのファイルを Dataflow サービスに送信します。

テンプレート化された Cloud Dataflow ジョブ

Dataflow テンプレートを使用する場合、ステージングと実行は別のステップです。このように分離されているため、ジョブを実行できるユーザーとジョブの実行元となる場所を柔軟に決定できます。

テンプレート化された Dataflow ジョブの典型的なワークフロー:

  1. 開発者が開発環境を作成し、パイプラインを開発します。環境には、Apache Beam SDK やその他の依存関係が含まれます。
  2. 開発者がパイプラインを実行し、テンプレートを作成します。Apache Beam SDK が Cloud Storage 内のファイルをステージングし、テンプレート ファイル(ジョブ リクエストと類似したもの)を作成し、Cloud Storage 内にテンプレート ファイルを保存します。
  3. デベロッパー以外のユーザーは、GCP Console、gcloud コマンドライン ツール、REST API でジョブを簡単に実行し、テンプレート ファイルの実行リクエストを Cloud Dataflow サービスに送信できます。

始める前に

独自のテンプレートを作成する際は、使用している Apache Beam SDK のバージョンでテンプレートの作成がサポートされていることを確認します。

Java: SDK 2.x

Dataflow SDK 2.x for Java を使用してテンプレートを作成するには、バージョン 2.0.0-beta3 以降が必要です。

Python

Dataflow SDK 2.x for Python を使用してテンプレートを作成するには、バージョン 2.0.0 以降が必要です。

Java: SDK 1.x

テンプレートを実行するために gcloud コマンドライン ツールを使用する場合は、Cloud SDK のバージョン 138.0.0 以降が必要です。

次のステップ