Airflow DAG

Python で学ぶ Apache Airflow 入門

Mike Metzger

Data Engineer

DAGとは何か?

DAG(有向非巡回グラフ):

  • _有向_ - コンポーネント間の流れが依存関係を表す
  • 非巡回 - ループや繰り返しがない
  • グラフ - コンポーネントの集合

ノードが一方向の矢印で接続され、ループのない有向非巡回グラフ

Python で学ぶ Apache Airflow 入門

AirflowにおけるDAG

  • Pythonで記述(他言語のコンポーネントも使用可能)
  • オペレーターやセンサーなどのタスクで構成
  • 依存関係を明示的または暗黙的に定義
    • 例:ファイルをサーバーにコピーしてからDBにインポートする

  タスク間の依存順序を示すAirflow DAG

Python で学ぶ Apache Airflow 入門

DAGの定義

DAGの例(Taskflow API):

from airflow.sdk import dag

from pendulum import datetime @dag( dag_id='etl_workflow', email='[email protected]', start_date=datetime(2026, 3, 15, tz="UTC") )
def etl_workflow(): ...
etl_workflow()
Python で学ぶ Apache Airflow 入門

コマンドラインでのDAG操作

 

  • airflow コマンドラインには多くのサブコマンドがある
  • airflow -h - ヘルプとサブコマンドの説明

 

  • DAGサブコマンド

    • airflow dags list - 認識済みDAGを一覧表示
    • airflow dags reserialize - DAGファイルの再読み込みを強制
    • airflow tasks test - 特定のタスクを実行
Python で学ぶ Apache Airflow 入門

コマンドラインとPythonの使い分け

コマンドラインツールの用途:

  • Airflowプロセスの起動
  • DAG/タスクの手動実行
  • Airflowのログ情報の取得

airflowコマンドラインツールを実行するターミナル

Pythonの用途:

  • DAGの作成
  • DAGの個別プロパティの編集

Pythonコードを表すイラスト

Python で学ぶ Apache Airflow 入門

練習しましょう!

Python で学ぶ Apache Airflow 入門

Preparing Video For Download...