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では、お客様のご予算・環境に応じたクラウド開発を承ります。

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

お問い合わせフォーム

SalesforceとBigQueryを連携 プレビュー環境で年間200万円削減

SalesforceとBigQuery連携
プレビュー環境で年間200万円削減

・Cloud Data FusionからBigQuery Data Transfer Serviceに切り替え
・Cloud Data Fusionの年間コスト200万円を削減
※執筆当時の情報です。Basic月間利用費$1,100、為替レート150円で計算したものです

「SalesforceとBigQueryを連携したい」というご要望が多いことから、このページをご覧の皆様も、「あること」にお困りではないかと思います。

それは「連携コストが高すぎる」ことです。

Cloud Data Fusionは利用費が高い

SalesforceとBigQueryを連携する方法はいくつかありますが、最も簡単でメジャーな方法はCloud Data Fusionです。

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

Cloud Data Fusion公式

しかし、ノーコードで簡単にできるものの、本番運用に適したBasic以上の利用料は月間約$1,100~と高額で、$1=150円として月16.5万円、年約200万円もかかります。

しかもこの料金、連携するデータ量が0ゼロであっても発生します。それは、Cloud Data Fusionの仕組みに理由があります。

Cloud Data Fusionでパイプラインを構築するためには、最初にインスタンスを立てなければなりません。

皆様専用の仮想サーバをGoogle Cloud に1つ立てるようなものとイメージいただければと思います。

このインスタンスが時間課金となっており、連携するデータ量が0ゼロであっても料金が発生するというわけです。

Cloud Data Fusion料金公式

連携を開始してから、しばらくの間、たいていのお客様はデータ連携を自動化できたことで喜ばれます。

しかし、事前に料金のことをわかっていたとしても、Googleからの高額請求が続きますと、「コストカットできないものか・・・」とご相談をいただくケースが多いです。

過去には「毎月1日だけインスタンスを作り、データ連携後にインスタンスを削除できないでしょうか」といったご相談をいただいたこともありました。

しかし、その方法では、Salesforceのデータ鮮度が落ちてしまい、本業への影響が大きく、断念されておられました。

SalesforceとBigQueryを直連携!

2024年3月Googleは「BigQuery と Salesforce Data Cloud 間の双方向データ共有が一般提供開始」とリリースしました。

これにより、Cloud Data Fusionなしで、SalesforceとBigQueryを連携できるようになりました。

現在、この機能はプレビュー版として提供されており、料金も無料です。

パイプラインを切り替えるだけで、年間200万円のコストが削減できます。

プレビュー版とは、本番リリース前のテスト環境のようなものです。

プレビュー版にはGoogleのSLAもございませんが、現時点で問題なく稼働しており、Cloud Data Fusionに戻されたお客様は一社様もございません。

Googleプロダクトステージ公式

Google Cloud開発お承ります

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

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

お問い合わせフォーム