Cloud Data Fusion でパイプラインの実行に失敗した場合の対処方法

Cloud Data Fusion でパイプラインの実行に失敗した場合の対処方法

Clock Icon2025.06.04

困っていた内容

Cloud Data Fusion を利用して BigQuery へのバッチパイプラインを作成したところ、デプロイは完了するのですがパイプラインの実行に失敗します。

  1. デプロイを実行
    2025-06-01_17h17_02

  2. デプロイの完了後にパイプラインを実行
    2025-06-01_17h18_11

  3. パイプラインの実行に失敗
    2025-06-01_17h25_02

パイプラインの各ノード上では Errors: 0 と表示されているのに、なぜパイプラインの実行に失敗するのでしょうか。確認が必要な設定箇所があれば教えてください。

回答

Cloud Data Fusion 利用開始時に作成されるサービス エージェント(service-CUSTOMER_PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com)に対して、サービスアカウントユーザーロール (roles/iam.serviceAccountUser)が付与されているかご確認ください。

説明

Cloud Data Fusion はパイプラインの実行時に、一時的な Dataproc クラスターを自動作成してデータを処理します。

cdf-projects-2x

Cloud Data Fusion の動作
Cloud Data Fusion サービス:パイプラインの管理・監視を行う
Dataproc クラスター:実際のデータ処理を実行する

また、Cloud Data Fusion においては、以下の 2 つのサービスアカウントが連携して動作しています。

サービスアカウント 説明
service-CUSTOMER_PROJECT_NUMBER@gcp-sa-datafusion.iam.gserviceaccount.com サービスエージェント。Cloud Data Fusion APIサービスエージェントと呼ばれ、Cloud Data Fusionがお客様のリソースにアクセスするために作成されるため、お客様に代わって動作できます。テナントプロジェクトでお客様のプロジェクトのリソースにアクセスするために使用されます。たとえば、プレビューはDataprocクラスタではなくメモリで実行されます。
CUSTOMER_PROJECT_NUMBER-compute@developer.gserviceaccount.com 他のGoogle CloudリソースにアクセスするジョブをデプロイするためにCloud Data Fusionが作成するデフォルトのCompute Engineサービスアカウント。デフォルトでは、パイプラインの実行中にCloud Data FusionがDataprocリソースにアクセスできるようにするために、DataprocクラスタVMに接続されています。Cloud Data FusionのEnterpriseエディションでは、Cloud Data Fusionコンソール→[システム管理者]→[構成]タブに移動してプロファイルを作成し、カスタムサービスアカウントを追加することによって、ユーザーが管理するサービスアカウントからパイプラインを実行できます。バージョン6.2.3以降では、Cloud Data Fusionインスタンスを作成するときにDataprocクラスタに接続されるカスタムサービスアカウントを選択できます。詳しくは、Dataprocのサービスアカウントをご覧ください。

Cloud Data Fusion が、他の Google Cloud サービス(BigQuery、Cloud Storage 等)へアクセスする際に、一時的に作成した Dataproc クラスターのサービスアカウント(CUSTOMER_PROJECT_NUMBER-compute@developer.gserviceaccount.com)を利用します。作成したリソースのサービスアカウントを利用する為には、サービスアカウントユーザーロール (roles/iam.serviceAccountUser)が必要となります。

権限付与の手順

Google Cloud コンソールを利用して、サービスエージェントにサービスアカウントユーザーロール (roles/iam.serviceAccountUser)を付与する手順をご紹介します。

  1. IAM ページにおいて「Google 提供のロール付与を含める」にチェックを入れます
    01

  2. Cloud Data Fusion API サービスエージェントを選択してから、画面右にある編集ボタンを押下します
    02

  3. 「別のロールを追加」ボタンを押下します
    03

  4. ロール検索でサービスアカウントユーザーを選択します
    04-01

  5. サービスアカウントユーザーロールが追加されたことを確認して「保存」ボタンを押下します
    05

以上で、サービスエージェントにサービスアカウントユーザーロールを付与できました。

まとめ

Cloud Data Fusion のパイプライン実行失敗時は、まずはサービスエージェントにサービスアカウントユーザーロールが付与されているかご確認ください。

この記事がどなたかのお役に立てば幸いです。

参考資料

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.