Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Stel in de functie year_check de 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 BranchPythonOperator af door de juiste argumenten toe te voegen.
  • Stel de afhankelijkheden in op current_year_task en new_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
Code bewerken en uitvoeren