Aan de slagBegin gratis

Definieer een @task.branch

Na het leren over de kracht van conditionele logica in Airflow wil je de @task.branch-decorator uitproberen. Je wilt een ander pad uitvoeren als de huidige uitvoeringsdatum een nieuw jaar aangeeft (bijv. 2026 vs 2025).

De Dag is al voor je gedefinieerd, samen met de betreffende taken. Je huidige taak is om de @task.branch te implementeren.

Deze oefening maakt deel uit van de cursus

Introductie tot Apache Airflow in Python

Bekijk cursus

Oefeninstructies

  • Voeg de juiste Airflow-datumsjabloonvariabelen toe als parameters aan year_check om het huidige en vorige uitvoeringsjaar te vergelijken.
  • Ken current_year en previous_year toe door de eerste 4 tekens van elke datumparameter te slicen.
  • Stel de afhankelijkheden in op current_year_task en new_year_task.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

@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
Code bewerken en uitvoeren