НачатьНачать бесплатно

Определение @task.branch

Изучив возможности условной логики в Airflow, вы решили попробовать декоратор @task.branch. Цель — выполнять разный код в зависимости от того, является ли текущая дата выполнения началом нового года (например, 2026 против 2025).

DAG и соответствующие задачи уже определены за вас. Ваша задача — реализовать @task.branch.

Это упражнение является частью курса

Введение в Apache Airflow на Python

Посмотреть курс

Инструкции к упражнению

  • Добавьте подходящие шаблонные переменные дат Airflow в качестве параметров функции year_check, чтобы сравнить текущий и предыдущий год выполнения.
  • Присвойте значения current_year и previous_year, взяв первые 4 символа из каждого параметра даты.
  • Задайте зависимости для current_year_task и new_year_task.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

@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
Редактировать и запускать код