Definisci un BranchPythonOperator
Dopo aver scoperto la potenza della logica condizionale in Airflow, vuoi mettere alla prova il BranchPythonOperator. Vuoi eseguire un percorso di codice diverso se la data di esecuzione corrente rappresenta un nuovo anno (es. 2020 vs 2019).
Il DAG è già definito, insieme alle attività interessate. Il tuo compito ora è implementare il BranchPythonOperator.
Questo esercizio fa parte del corso
Introduzione ad Apache Airflow in Python
Istruzioni dell'esercizio
- Nella funzione
year_check, configura il codice per determinare se l'anno della data di esecuzione corrente è diverso dalla precedente data di esecuzione (cioè, se l'anno è diverso tra le opportune variabili template di Airflow). - Completa il
BranchPythonOperatoraggiungendo gli argomenti appropriati. - Imposta le dipendenze su
current_year_taskenew_year_task.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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