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
Oefeninstructies
- Voeg de juiste Airflow-datumsjabloonvariabelen toe als parameters aan
year_checkom het huidige en vorige uitvoeringsjaar te vergelijken. - Ken
current_yearenprevious_yeartoe door de eerste 4 tekens van elke datumparameter te slicen. - Stel de afhankelijkheden in op
current_year_taskennew_year_task.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in 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