Definuj @task.branch
Po tom, co ses naučil/a o síle podmínkové logiky v Airflow, si chceš vyzkoušet dekorátor @task.branch. Cílem je spustit jiný kód v případě, že aktuální datum spuštění představuje nový rok (tj. 2026 místo 2025).
DAG je již definován spolu s potřebnými úlohami. Tvým úkolem je implementovat @task.branch.
Toto cvičení je součástí kurzu
Úvod do Apache Airflow v Pythonu
Pokyny k cvičení
- Přidej do
year_checkpříslušné Airflow šablonové proměnné pro datum jako parametry, aby bylo možné porovnat aktuální a předchozí rok spuštění. - Přiřaď
current_yearaprevious_yeartak, že z každého datového parametru vyřízneš prvních 5 znaků. - Nastav závislosti pro
current_year_taskanew_year_task.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
@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