Cloud Data Fusionがスケジュール実行エラーした時の対処法

Cloud Data Fusionがスケジュール実行エラーした時の対処法

・外部ソースとGoogle Cloudのパイプラインをノーコードで構築できるCloud Data Fusion
・設定済みのスケジュールタスクにおいて、エラーが発生することがある
・スケジュール設定を見直すだけで解決する場合がある

SalesforceやAWSのRedshift等の外部ソースをGoogle Cloudへ連携する方法はいくつかありますが、最も簡単でメジャーな方法はCloud Data Fusionです。

Cloud Data Fusionは、外部ソースとGoogle BigQueryなどGoogle Cloudを連携できるノーコードツールで、パイプラインを簡単に構築できます。

インスタンスを作成することで、毎日およそ数十ドルのコストが発生しますが、とても簡単にパイプラインを構築できるので、利用されている企業様も多いです。

Cloud Data Fusion公式

成功したはずのデプロイが、スケジュール実行するとエラーになる

簡単にパイプラインを構築できるCloud Data Fusionは、デプロイしたパイプラインをスケジュール設定することで、簡単にバッチ化できます。

しかし、デプロイに成功したはずのパイプラインを、スケジュール実行すると、エラーになる場合があります。

エラーになったログをダウンロードして確認すると、以下のようなキーワードが出力されます。

Spark Program 'phase-1' failed

Cloud Data Fusionは、複数のステップを踏んで、外部ソースをGoogle Cloudに連携します。

このエラーは、’pahse-1’で失敗しており、そのエラーメッセージの付近に、このような記述もあります。

Caused by ...省略... The connection attempt failed.

接続に失敗したというエラーが発生しています。

このエラーは、外部ソースへの接続情報やファイヤーウォールなど設定関連が誤っている時に発生します。

でも、おかしいですよね。

デプロイに成功しています。

設定は正しいので、エラーになるはずがありません。

高負荷の処理が集中すると、外部ソースもCloud Data Fusionもリソースがひっ迫してエラーになりやすい

Cloud Data Fusionは、同時に複数のデプロイを実行できます。

その上限は開示されていませんが、おそらくCloud Data Fusionのバージョンや、インスタンスのエディション等で異なります。

私の経験上ではありますが、現行のBasicエディションであれば、50個程度は実行できたと思います。

しかし、スケジュール設定においては、最大で10個しか同時に実行できません。

これは、同時実行数を減らすことで、高負荷の処理を分散する意図だと思われます。

おそらく、10個同時にスケジュール実行したことで、リソースがひっ迫し、エラーになったようです。

スケジュール設定を見直すだけで解決する場合がある

10個同時に実行してダメな場合、同時実行数を減らさなければなりません。

しかし、デプロイ数が多い場合、同時実行数を1つに設定してしまうと、全体の処理が終わらず、データ更新が終わりません。

もし、100個のデプロイをスケジュールしたい場合、100個を1つずつ実行するので、相当な時間がかかります。

このような場合、以下のように設定を見直すだけで、解決する場合があります。

10個同時に実行する点においては、外部ソースやCloud Data Fusionへの負荷がかかる点は変わらず、根本的な解決にはなりませんが、起動処理などのタイミングをずらすことはできます。

変更前

デプロイ番号スケジュール 開始時刻
#1~#100:00AM
#11~201:00AM
・・・省略・・・
#91~#1009:00AM

変更後

デプロイ番号スケジュール 開始時刻
#10:00AM
#20:06AM
・・・省略・・・
#919:00AM
・・・省略・・・
#1009:54AM

Google Cloud開発お承ります

datacompanyでは、お客様のご予算・環境に応じたクラウド開発を承ります。

お困りごとがございましたら是非ご相談ください。

お問い合わせフォーム

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です