始める無料で始める

@task.branch の定義

Airflow における条件分岐ロジックの仕組みを学んだあと、@task.branch デコレータを実際に試してみましょう。現在の実行日が新しい年(たとえば 2025 年から 2026 年)を表している場合に、異なるコードパスを実行したいと思います。

DAG はあらかじめ定義されており、関連するタスクも用意されています。ここでは @task.branch の実装に取り組みましょう。

この演習はコースの一部です

Python で学ぶ Apache Airflow 入門

コースを見る

演習の手順

  • 現在の実行年と前回の実行年を比較するために、適切な Airflow の日付テンプレート変数を year_check のパラメータとして追加しましょう。
  • 各日付パラメータの先頭 4 文字を取り出して、current_yearprevious_year に代入しましょう。
  • current_year_tasknew_year_task への依存関係を設定しましょう。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

@dag(start_date=datetime(2026,5,1), schedule='@monthly')
def process_yearly_expenses():
  # Create a function to determine if years are different
  @task.branch
  def year_check(____, ____):
      current_year = int(____[0:4])
      previous_year = int(____[0:4])
      if current_year == previous_year:
          return 'current_year_task'
      else:
          return 'new_year_task'

  # Define the dependencies
  branch_task __ current_year_task
  ____ >> new_year_task
コードを編集して実行