Обновленный раздел 4 - актуализация по версии
@@ -1,114 +1,88 @@
|
||||
# Знакомство с интерфейсом Airflow для начинающих
|
||||
|
||||
Когда вы создаете ETL-процессы для автоматической обработки данных, важно иметь удобный способ отслеживать их работу, находить ошибки и управлять выполнением. Именно для этого в Apache Airflow предусмотрен веб-интерфейс — ваш главный помощник в повседневной работе с пайплайнами.
|
||||
В предыдущих главах вы познакомились с основными понятиями Apache Airflow и поняли, из каких компонентов он состоит внутри. Теперь самое время открыть веб‑интерфейс — главный инструмент для ежедневной работы с пайплайнами.
|
||||
|
||||
В этом материале мы подробно разберем, как устроен интерфейс Airflow версии 2.5 и какие возможности он предоставляет для мониторинга и управления вашими процессами обработки данных.
|
||||
Через UI вы будете:
|
||||
|
||||
# Домашняя страница Airflow
|
||||
- смотреть список DAG-ов и их статусы;
|
||||
- запускать пайплайны вручную и останавливать их;
|
||||
- разбираться, почему задачи упали, и перезапускать их;
|
||||
- анализировать время выполнения и находить узкие места.
|
||||
|
||||
После входа в систему вы попадете на главную страницу — центральную панель управления, где собрана вся ключевая информация о ваших пайплайнах. Не пугайтесь обилия элементов и цветов — все устроено логично и интуитивно понятно.
|
||||
В этой главе мы сосредоточимся на ключевых экранах интерфейса Airflow 2.9.x и будем опираться на стенд из папки `airflow-docker` в этом репозитории.
|
||||
|
||||
По сути, это обычная таблица, где каждая строка представляет собой один DAG (Directed Acyclic Graph) — ваш пайплайн обработки данных, а столбцы содержат различную информацию о нем.
|
||||
## Главная страница: список DAG-ов (DAGs View)
|
||||
|
||||
## Основные элементы главной страницы
|
||||
После авторизации в Airflow вы попадаете на главную страницу — список всех DAG-ов. Это экран, откуда начинается почти любая работа.
|
||||
|
||||
**Название DAG** — в первом столбце отображается список всех зарегистрированных в системе пайплайнов. По умолчанию Airflow включает демонстрационные примеры различных операторов. Список отсортирован по алфавиту для удобства поиска.
|
||||
Здесь полезно знать несколько ключевых колонок (названия — как в англоязычном UI):
|
||||
|
||||

|
||||
- **DAG / DAG ID** — идентификатор пайплайна; клик по нему открывает страницу конкретного DAG-а.
|
||||
- **Owner** — владелец пайплайна (на кого «вешать» вопросы и инциденты).
|
||||
- **Schedule** — расписание запуска в виде cron-выражения или пресета.
|
||||
- **Last Run / Next Run** — когда DAG запускался в последний раз и когда запустится по расписанию.
|
||||
- **Recent Tasks** — короткая сводка по результатам последних запусков (сколько задач `success` / `failed` / `running` и т.п.).
|
||||
- **Actions** — быстрые действия: переключатель **Pause / Unpause** (включить/выключить выполнение по расписанию), кнопка **Trigger DAG** (ручной запуск), ссылки на детальные представления: **Grid**, **Graph**, иногда **Code**.
|
||||
|
||||
**Переключатели активности** — напротив каждого DAG находится кнопка-выключатель, позволяющая мгновенно активировать или деактивировать пайплайн прямо из веб-интерфейса без изменения кода.
|
||||
На этом экране вы решаете простой вопрос:
|
||||
«С моими DAG-ами всё более-менее нормально или где-то горит?»
|
||||
|
||||

|
||||
## Страница DAG: главное рабочее место
|
||||
|
||||
**Владелец процесса** — каждый пайплайн имеет ответственного владельца. Это особенно полезно в командной работе, когда несколько инженеров создают и поддерживают различные ETL-процессы. Владелец отвечает за мониторинг и корректную работу своего DAG.
|
||||
Когда на главной странице (**DAGs View**) вы нажимаете на `DAG ID`, открывается страница конкретного пайплайна.
|
||||
|
||||

|
||||
Верхняя часть страницы DAG:
|
||||
|
||||
**Статус выполнения** — цветные индикаторы с цифрами показывают количество и состояние последних запусков DAG:
|
||||
- 🔴 Красный — завершено с ошибкой (failed)
|
||||
- 🟡 Желтый — ожидает повторного запуска (retry)
|
||||
- 🟢 Зеленый — выполняется в данный момент (running)
|
||||
- 🟢 Тёмно-зеленый — успешно завершено (success)
|
||||
* переключатель **Pause / Unpause**;
|
||||
* кнопка **Trigger DAG** (ручной запуск);
|
||||
* фильтр по дате, типу и состоянию запусков (**Run Type**, **Run State**, период по календарю);
|
||||
* небольшой индикатор статусов задач (цветные ярлыки `running`, `failed`, `success` и т.п.).
|
||||
|
||||

|
||||
> Для экспериментов удобно использовать стенд из папки `airflow-docker` в этом репозитории — там Airflow 2.9.2, и интерфейс будет выглядеть так же, как в учебнике.
|
||||
|
||||
**Расписание** — указывает, когда и с какой периодичностью запускается пайплайн. Используется формат cron, который может показаться сложным на первый взгляд. Для перевода cron-выражений в понятный формат рекомендуем использовать сервис [Crontab.guru](https://crontab.guru/).
|
||||
Чуть ниже — горизонтальное меню вкладок:
|
||||
|
||||

|
||||
* **Details**
|
||||
Краткое резюме DAG: количество задач, типы операторов, расписание, теги, статистика по запускам. Это удобная точка входа: «что это за DAG и как он в целом живёт».
|
||||
|
||||
**Последний запуск** — показывает дату и время самого свежего выполнения DAG, будь то автоматический запуск по расписанию или ручной запуск.
|
||||
* **Graph**
|
||||
Граф зависимостей задач. Здесь хорошо видно, какие задачи идут последовательно, какие — параллельно, где ветвления.
|
||||
Клик по задаче открывает панель с действиями: **View Log**, **Clear**, **Mark Success / Mark Failed**, **Run** и др.
|
||||
|
||||

|
||||
* **Gantt**
|
||||
Диаграмма Ганта для выбранного запуска DAG. Показывает, сколько времени заняла каждая задача и где они выполнялись параллельно. По ней удобно искать «бутылочные горлышки» — самые долгие шаги пайплайна.
|
||||
|
||||
**Статус задач** — детальная информация о последнем запуске: сколько задач находится в каждом статусе. Это помогает быстро оценить общее состояние пайплайна без необходимости погружаться в детали.
|
||||
* **Run Duration**
|
||||
История длительности запусков DAG. Помогает увидеть, не стали ли запуски в целом работать заметно дольше, и отследить, после какого изменения время выполнения выросло.
|
||||
|
||||

|
||||
* **Calendar**
|
||||
Календарный вид истории запусков: по дням и месяцам видно, когда DAG запускался и как часто были ошибки.
|
||||
|
||||
**Быстрые действия** — в последнем столбце расположены кнопки для немедленного выполнения операций: запуск, обновление и удаление DAG. На практике этими кнопками пользуются редко.
|
||||
* **Code**
|
||||
Исходный код DAG, который сейчас задеплоен в Airflow. Быстрый способ проверить, что в среде действительно лежит та версия DAG, которую вы ждёте (и что изменения из Git уже подхватились).
|
||||
|
||||
Главная страница дает вам общее представление о состоянии всех ваших процессов. Но для детальной работы с конкретным пайплайном нужно перейти внутрь — просто кликните по названию интересующего DAG.
|
||||
* **Audit Log**
|
||||
Журнал действий по DAG: кто запускал, очищал задачи, менял состояние и т.д. Полезен, когда нужно понять, «кто и что нажал» перед тем, как всё сломалось.
|
||||
|
||||

|
||||
### Как работать с задачами (Tasks)
|
||||
|
||||
# Страница конкретного DAG
|
||||
Независимо от вкладки (чаще всего — **Graph** или **Gantt**), логика одна:
|
||||
|
||||
После перехода внутрь DAG вы увидите набор вкладок с различной информацией: от визуального представления структуры пайплайна до детальных логов выполнения и исходного кода.
|
||||
1. Находите нужную задачу.
|
||||
2. Кликаете по ней — справа (или во всплывающем окне) появляется панель **Task Instance**.
|
||||
3. В этой панели доступны:
|
||||
|
||||
## Древовидное представление (Tree View)
|
||||
* **View Log** — открыть логи;
|
||||
* **Clear** — очистить состояние для повторного запуска;
|
||||
* **Mark Success / Mark Failed** — вручную выставить статус;
|
||||
* **Run** — запустить задачу сейчас.
|
||||
|
||||
По умолчанию открывается вкладка с древовидной структурой задач. Здесь отображаются все запуски DAG с указанием статуса каждой задачи, времени выполнения и других метрик мониторинга.
|
||||
Через дополнительные опции **Clear** можно захватывать **upstream** / **downstream** задачи и несколько запусков сразу — это основной инструмент «перезапуска кусочка» DAG.
|
||||
|
||||
Вы можете увидеть:
|
||||
- Состав DAG и последовательность выполнения задач
|
||||
- Тип оператора для каждой задачи
|
||||
- Историю запусков в виде цветных квадратов напротив каждой задачи
|
||||
Подробное описание всех экранов Airflow (с актуальными скриншотами) есть в официальной документации: [UI / Screenshots (Apache Airflow 2.9.3)][1].
|
||||
|
||||

|
||||

|
||||
Там же описаны **DAGs View**, **Grid View**, **Graph View**, **Gantt Chart**, **Task Duration**, **Landing Times**, **Code View**, **Audit Log** и другие разделы UI.
|
||||
|
||||
## Графическое представление (Graph View)
|
||||
---
|
||||
|
||||
Когда DAG содержит много задач, древовидное представление может быть неудобным. В таких случаях используйте вкладку Graph View — она показывает пайплайн в виде наглядного графа с четкими связями между задачами.
|
||||
|
||||

|
||||

|
||||
|
||||
При клике на любую задачу открывается подробное окно с двумя основными разделами:
|
||||
|
||||
### Информация о задаче
|
||||
- **Просмотр логов** — переход к странице с полным выводом выполнения задачи (одна из самых часто используемых функций)
|
||||
- **Детали выполнения** — подробная информация о конкретном запуске задачи
|
||||
|
||||
### Управление задачей
|
||||
Доступны четыре основных действия:
|
||||
- **Запустить** — выполнить задачу немедленно
|
||||
- **Очистить состояние** — сбросить статус задачи для повторного выполнения
|
||||
- **Отметить как неудачную** — вручную установить статус ошибки
|
||||
- **Отметить как успешную** — вручную установить статус успеха
|
||||
|
||||
Каждое действие можно комбинировать с дополнительными опциями:
|
||||
- **Игнорировать зависимости** — запуск без проверки зависимостей от других задач
|
||||
- **Работать с прошлыми/будущими запусками** — применить действие ко всем запускам в определенном временном диапазоне
|
||||
- **Влиять на связанные задачи** — применить действие к предыдущим (upstream) или последующим (downstream) задачам
|
||||
|
||||
Наиболее популярная комбинация — **Downstream + Recursive + Clear**, которая сбрасывает текущую задачу и все зависящие от нее задачи в рамках одного запуска.
|
||||
|
||||
## Анализ времени выполнения (Task Duration)
|
||||
|
||||
Вкладка Task Duration автоматически строит графики на основе истории выполнения, показывая, сколько времени занимает каждая задача при каждом запуске. Это помогает выявлять узкие места и отслеживать изменения производительности.
|
||||
|
||||

|
||||
|
||||
## Диаграмма Ганта (Gantt)
|
||||
|
||||
Диаграмма Ганта визуализирует распределение времени выполнения задач в рамках одного запуска DAG. Это отличный инструмент для определения самых ресурсоемких операций и планирования оптимизации.
|
||||
|
||||

|
||||
|
||||
## Исходный код (Code)
|
||||
|
||||
Вкладка Code отображает актуальный код DAG, который Airflow использует для выполнения. Это особенно полезно для проверки, что изменения из вашего Git-репозитория успешно загружены в систему и готовы к выполнению.
|
||||
|
||||

|
||||
|
||||
Теперь вы знакомы с основными возможностями веб-интерфейса Airflow для мониторинга и управления вашими процессами обработки данных. Эти знания помогут вам эффективно работать с пайплайнами и быстро решать возникающие проблемы.
|
||||
[1]: https://airflow.apache.org/docs/apache-airflow/2.9.3/ui.html "UI / Screenshots — Airflow Documentation"
|
||||
|
||||
|
Before Width: | Height: | Size: 778 KiB |
|
Before Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 311 KiB |
|
Before Width: | Height: | Size: 807 KiB |
|
Before Width: | Height: | Size: 838 KiB |
|
Before Width: | Height: | Size: 880 KiB |
|
Before Width: | Height: | Size: 873 KiB |
|
Before Width: | Height: | Size: 322 KiB |
|
Before Width: | Height: | Size: 834 KiB |
|
Before Width: | Height: | Size: 142 KiB |
|
Before Width: | Height: | Size: 188 KiB |
|
Before Width: | Height: | Size: 649 KiB |
|
Before Width: | Height: | Size: 502 KiB |
|
Before Width: | Height: | Size: 546 KiB |
|
Before Width: | Height: | Size: 748 KiB |