Запустить DAG в Apache Airflow™
Инструкция описывает веб-интерфейс Apache Airflow™ 3.1.8. Для проверки можно использовать DAG hello_airflow из примера загрузки.
Перед началом
Убедитесь, что кластер находится в состоянии Ready, DAG загружен и у вас есть учетные данные для входа.
Запустить вручную
- Откройте веб-интерфейс Apache Airflow™ и перейдите в раздел Dags.
- Найдите нужный DAG и откройте его. Если DAG приостановлен, включите его переключателем рядом с именем.
- Нажмите Trigger. В открывшемся окне выберите Single Run.
- Если DAG требует параметры запуска, заполните их. Для
hello_airflowможно оставить значениеmessageпо умолчанию. Подтвердите запуск кнопкой Trigger. - Откройте вкладку Runs и выберите созданный запуск. Дождитесь его завершения.
Для hello_airflow ожидаемый результат — состояние success у запуска и задачи greet. При ошибке посмотрите логи задачи.
Повторный ручной запуск создает отдельный запуск DAG. Перед повтором DAG, который изменяет внешние данные, убедитесь, что повторная обработка допустима.
Элементы интерфейса описаны в документации Apache Airflow™
Передать параметры запуска
- Для DAG
hello_airflowнажмите Trigger → Single Run. - В поле
messageукажитеHello from parameters!и нажмите Trigger. - Откройте созданный запуск, задачу
greetи вкладку Logs. В логе должно быть переданное сообщение; на вкладке XCom — возвращенная строка.
Поле появляется благодаря params в примере DAG. Параметр message имеет тип string; форма проверяет введенное значение. Параметры относятся к выбранному запуску и не изменяют значение по умолчанию в Python-файле.
Если DAG использует dag_run.conf, откройте Advanced Options и задайте Configuration JSON в соответствии с требованиями его автора. Не передавайте пароли и ключи доступа в параметрах запуска: для подключений используйте Connections.
Переопределение params при запуске зависит от настройки core.dag_run_conf_overrides_params. Если задача использует значение по умолчанию вместо введенного, проверьте эту настройку с администратором кластера. Подробнее — в описании Params
Повторить упавшую задачу
Используйте Clear Task Instance, чтобы повторить задачу в существующем запуске. Сначала изучите логи и устраните причину ошибки, например восстановите доступ к внешнему сервису или исправьте Connection. Убедитесь, что повторная обработка данных допустима.
-
Откройте Dags → нужный DAG → Runs и выберите запуск с ошибкой.
-
На графе или в списке задач выберите упавшую задачу. В ее действиях нажмите Clear Task Instance.
-
В окне подтверждения выберите область повторного выполнения:
- Downstream — включить зависимые задачи этого запуска. Этот вариант выбран по умолчанию; выключите его, если нужно повторить только выбранную задачу.
- Upstream — включить предшествующие задачи.
- Past и Future — включить задачи из других запусков. Для повтора в пределах одного запуска оставьте их выключенными.
- Clear only failed tasks — ограничить выбор задачами с ошибками.
-
Проверьте список Affected Tasks и нажмите Confirm.
-
Убедитесь, что DAG не приостановлен. Дождитесь повторного выполнения выбранных задач, затем проверьте их состояния и новую попытку на вкладке Logs.
Если для исправления пришлось обновить Python-код, проверьте загруженную версию перед повтором. Доступность выбора версии в окне Clear зависит от способа хранения DAG; само обновление файла не подтверждает, какой код использует повторная попытка.
Присвоение задаче состояния success вручную меняет ее состояние без выполнения кода. Для повторного выполнения используйте Clear Task Instance. Подробнее — в документации по повторному выполнению задач
Приостановить или возобновить DAG
- В разделе Dags найдите нужный DAG.
- Выключите переключатель рядом с именем, чтобы приостановить DAG, или включите его, чтобы возобновить планирование.
Приостановка DAG не завершает уже выполняющиеся задачи и не останавливает кластер. Следующие задачи ожидают возобновления DAG. Подробнее — в описании приостановки DAG
Настроить расписание
Расписание задается в Python-коде DAG. В примере замените schedule=None на schedule="0 9 * * *", сохранив остальные параметры. Этот cron задает ежедневный запуск в 09:00 UTC: часовой пояс определяется start_date, который в примере задан с timezone.utc.
- Обновите DAG-файл в Git или S3 и проверьте изменение на вкладке Code.
- Откройте сведения о DAG на вкладке Details и проверьте расписание. Учитывайте часовой пояс отображения дат в интерфейсе.
- Включите DAG переключателем рядом с именем.
- После наступления времени по расписанию откройте Runs. Проверьте появление запуска типа
scheduledи его результат.
При catchup=False, как в примере, Apache Airflow™ не создает все пропущенные запуски с даты start_date. При catchup=True включение или возобновление DAG может привести к обработке пропущенных интервалов. Значение schedule=None отключает автоматические запуски даже у включенного DAG.
Для других расписаний учитывайте различие между временем запуска и логической датой обработки данных. Подробнее — в описании запусков DAG
Обработать прошлый период через Backfill
Backfill создает запуски для выбранного прошлого периода по расписанию DAG. Для проверки сначала настройте расписание: у исходного hello_airflow с schedule=None Backfill недоступен.
-
Откройте DAG и нажмите Trigger → Backfill.
-
В Date Range задайте начало From и конец To периода. Проверьте часовой пояс дат.
-
В Reprocess Behavior выберите:
- Missing Runs — создать только отсутствующие запуски;
- Missing and Errored Runs — также повторно обработать даты запусков с ошибками;
- All Runs — также обработать даты уже завершенных запусков.
-
В Max Active Runs задайте допустимое число параллельных запусков для этой операции. Для первой проверки используйте
1. -
При необходимости включите Run Backwards, чтобы начать с более поздних дат. Параметры DAG задайте в Run Parameters или в Advanced Options → Configuration JSON, если они требуются для обработки выбранного периода.
-
Проверьте рассчитанное количество запусков. Если DAG приостановлен, включите его с помощью Unpause … on trigger. Нажмите Run Backfill.
-
Откройте вкладку Backfills, затем проверьте созданные запуски на вкладке Runs и результаты задач.
Перед выбором All Runs убедитесь, что повторная обработка не создаст нежелательные дубликаты во внешних системах. Если для даты уже есть запуск в состоянии running или queued, новый запуск для нее не создается. Подробнее — в описании Backfill