Definieer een BranchPythonOperator
Na te hebben geleerd over de kracht van conditionele logica in Airflow, wil je de BranchPythonOperator uitproberen. Je wilt een andere codepad uitvoeren als de huidige executiedatum een nieuw jaar vertegenwoordigt (bijv. 2020 vs 2019).
De DAG is voor je gedefinieerd, samen met de betreffende taken. Jouw taak is nu om de BranchPythonOperator te implementeren.
Deze oefening maakt deel uit van de cursus
Introductie tot Apache Airflow in Python
Oefeninstructies
- Stel in de functie
year_checkde code zo in dat wordt bepaald of het jaar van de huidige executiedatum verschilt van de vorige executiedatum (dus: is het jaar verschillend tussen de juiste Airflow-templatevariabelen?). - Maak de
BranchPythonOperatoraf door de juiste argumenten toe te voegen. - Stel de afhankelijkheden in op
current_year_taskennew_year_task.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Create a function to determine if years are different
def year_check(**kwargs):
current_year = int(kwargs[____][0:4])
previous_year = int(____[____][0:4])
if current_year == previous_year:
return 'current_year_task'
else:
return 'new_year_task'
# Define the BranchPythonOperator
branch_task = BranchPythonOperator(task_id='branch_task', dag=branch_dag,
python_callable=____, ____=True)
# Define the dependencies
branch_task ____ current_year_task
branch_task ____ new_year_task