テックブログ

エルカミーの技術ブログです

☁️ Google Cloud のワークフローの特徴比較

はじめに

データ基盤でデータを処理する一連の流れをデータパイプラインと言います。データパイプラインを構成するワークフローとは、処理タスクの順序やパターンを指定したものです。Google Cloudには複数のワークフロープロダクトがあります。それぞれの特徴を紹介します。

Google Cloud のワークフロープロダクトの特徴まとめ

Google Cloud のワークフロープロダクトは、それぞれ以下のような特徴を持っています。

Cloud Composer Workflows Cloud Data Fusion BigQueryスケジューリング Dataform Vertex AI Pipelines
処理の実行順序の柔軟性 順次順序、条件分岐、並列処理 順次実行、条件分岐、並列実行 順次実行、条件分岐、並列処理 順次実行 順次実行 順序実行、条件分岐、並列処理
スケジュール機能 cronでのスケジューリング機能がある Cloud Schedulerと組み合わせて使用可能 cronでのスケジューリング機能がある cronでのスケジューリング機能がある cronでのスケジューリング機能がある Cloud Schedulerと組み合わせて使用可能
開発方法 PythonによるDAG定義 YAMLでワークフローを定義 GUIを使ったパイプライン設計 BiqQueryのSQL SQLXというSQL拡張言語で定義(SQLとJavaScriptによるデータ変換の定義)
GitHub、GitLabでのコードバージョン管理
Python SDKを使用したパイプラインの作成
連携可能なサービスの種類 多数のGoogle Cloudサービスと連携可能 HTTPベースの任意のAPI
Google Cloud API
多数のGoogle Cloudサービス、データソースと連携可能 BigQueryと直接連携 BigQueryと直接連携 GCPのAI・MLサービス、データサービスとの連携が可能
エラー処理 リトライ、エラーロギング リトライ、エラーロギング、エラーハンドリング リトライ、エラーロギング なし リトライ、エラーロギング エラーロギング
エラー通知 Email 単体ではなし Email、HTTP call Email、Pub/Sub Email、Slack 単体ではなし
ワークフローの監視 AirflowのUI、Cloud Logging Workflows UI、Cloud Logging Cloud Data Fusion UI、Cloud Logging BigQuery UI、Cloud Logging Dataform UI、Cloud Logging Vertex AI UI、Cloud Logging
運用 フルマネージド サーバーレス フルマネージド サーバーレス サーバーレス サーバーレス
Cloud Composer

Cloud Composerは、Apache Airflowをベースにしたフルマネージドのワークフローオーケストレーションサービスで、複数のGCPサービス間での複雑なデータパイプラインの管理に適しています。例えば、BigQueryでデータを処理した後に、その結果をCloud Storageに保存し、その後Cloud Pub/Subで結果を他のサービスに通知するといったシナリオで利用されます。

Workflows

Workflowsは、マイクロサービスの連携や、HTTP APIの連携など、各種API呼び出しのシーケンスを表現するのに最適なツールです。例えば、ユーザーが注文を行った際に、決済処理、在庫確認、配送手配といった複数のAPIを順序良く呼び出すといったシナリオで利用されます。

Cloud Data Fusion

Cloud Data Fusionは、データ変換(ETL)タスクに焦点を当てたデータ統合サービスで、ユーザーは、コードを書かずにデータパイプラインをGUIでデザインできます。データウェアハウスの作成や、データのクレンジングと変換に最適です。

BigQueryスケジューリング

BigQueryスケジューリングは、BigQueryクエリの定期実行を可能にする機能です。SQLを用いてデータ分析を行う際に、その結果を定期的に取得する必要がある場合に役立ちます。

Dataform

Dataformは、BigQueryに特化したデータ変換(ETL)ツールで、SQLによる大規模なデータパイプラインの作成と管理を支援します。データウェアハウス内のデータ品質保証や、報告用のデータセット作成に適しています。

Vertex AI Pipelines

Vertex AI Pipelinesは、機械学習ワークフローを自動化するためのサービスで、データの前処理、モデルの訓練、モデルの評価とデプロイといった一連のMLタスクを効率的に管理します。