0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

composer上におけるAirflowの特徴・比較

Posted at

🔷 Apache Airflow とは?

Apache Airflow は、定期実行・依存関係を持つ処理を管理するためのワークフローオーケストレーターです。タスクを DAG(有向非巡回グラフ)として定義し、Pythonコードで柔軟にワークフローを構築できます。

✅ 主な特徴

  • DAG(Directed Acyclic Graph)による依存関係の可視化と管理
  • Pythonベースの柔軟なタスク定義
  • スケジューリング(cron相当)
  • タスク失敗時のリトライやアラート通知
  • Web UIによる可視化と操作
  • ロギング、メトリクス、セキュリティの統合

🏗️ Cloud Composer とは?

Cloud Composer は、Google Cloud が提供する Apache Airflow のマネージドサービスです。Airflow のインストール・構成・スケーリング・モニタリングなどの煩雑な管理を GCP が代行してくれます。

✅ Cloud Composer のメリット

  • Airflow 環境のセットアップ不要(すぐ使える)
  • GCP サービス(BigQuery、GCS、Pub/Sub など)とシームレスに統合
  • スケーラブルなインフラ構成(GKE上で稼働)
  • セキュリティ(IAM、VPC、Secret Manager 連携)
  • Web UIでワークフローの可視化とモニタリング

🔄 Airflow / Composer で実現できること

  • データパイプラインの自動化(ETL/ELT)
  • 機械学習パイプラインの構築(学習〜推論)
  • データ転送や整形、通知などのオーケストレーション
  • ストレージやDBのトリガー処理
  • スケジュールに沿った定期バッチの実行

📂 GitHub + GCS + Composer の実践構成(実際の開発例)

  1. GitHub で DAG を含むワークフローファイルを管理
  2. GitHub Actions などで GCS に同期
  3. Composer は GCS 上の DAG を読み込んで実行

この構成により、コード管理・自動デプロイ・CI/CD が実現できます。

⚠️ 注意点:Airflowは「分散処理エンジン」ではない

Airflowは分散処理エンジン(例えば、SparkやBigQuery)のように大量データを処理するわけではなく、タスク単位での並列実行を行うオーケストレーターです。

✘ よくある誤解 ✔ 正しい理解
AirflowがSparkみたいに大量データを並列に処理する Airflowは「処理を並列に“実行”させるスケジューラー
Airflowが分散データ処理をする Airflowは「タスクを投げて指示する指揮官」、処理そのものは他ツールが担当

✅ Airflowの並列処理の正体

Airflowは「複数のタスクを同時に動かす(=並列実行)」ことができます。例えば:

task_a >> [task_b, task_c, task_d]

この場合、task_b〜task_dは並列で実行されます。

Airflowは1つ1つのタスクは基本的に「シングルスレッド」

データの並列処理(分散MapReduce的な処理)はSpark、BigQuery、Dask、Rayなどに任せます。

つまり、並列に実行されるタスクはそれぞれ独立したプロセスで動作し、そのタスクの中身をどう実行するかはOperatorが担います。

⚖️ 他のワークフローツールとの比較

ツール名 特徴 メリット デメリット
Airflow (Composer) DAGベース、Python、拡張性◎ 柔軟な処理定義、GCP連携◎、大規模対応 学習コストやや高、セットアップ手間(Composerで解消)
Prefect Python製、フロー志向、UI優秀 タスク間依存が柔軟、エラー処理強力 DAGより抽象度高く初心者には取っ付きにくい
Luigi タスク依存と実行に強み 軽量で自前構築しやすい UIやスケジューラが弱い、GCP連携が薄い
Dagster 型付きDAG、開発者体験重視 開発支援ツールが豊富、テストしやすい 学習コスト高め、Airflowほどの採用実績はまだ少ない
Kubeflow Pipelines ML特化、Kubernetes連携 機械学習向けに最適化、GPU対応 MLに特化しすぎて汎用性に欠ける

参照記事

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?