はじめに
データ基盤でデータを処理する一連の流れをデータパイプラインと言います。データパイプラインを構成するワークフローとは、処理タスクの順序やパターンを指定したものです。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、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タスクを効率的に管理します。