← Ко всем open source проектам

Apache Airflow

apache/airflow

Apache Airflow — платформа для описания, планирования и наблюдения за цепочками задач обработки данных.

Форки 17,305
Автор apache
Язык Python
Лицензия Apache-2.0
Обновлено 2026-06-27

Что это такое

Apache Airflow — платформа оркестрации задач. Она нужна там, где есть цепочки операций: загрузить данные, преобразовать, проверить, выгрузить, уведомить команду и повторить это по расписанию.

Проект начался в Airbnb, затем стал проектом Apache. Его идея — описывать зависимости и расписание как код на Python, а не как набор разрозненных cron-команд и ручных инструкций.

Что внутри репозитория

В репозитории находятся планировщик, веб-интерфейс, исполнители задач, операторы, сенсоры, провайдеры интеграций, миграции базы, тесты и документация. Центральное понятие — DAG: направленный граф задач и зависимостей.

Airflow особенно силен там, где важна наблюдаемость: видно, какая задача упала, сколько она выполнялась, какие зависимости уже прошли и что можно перезапустить отдельно.

Как используют

Команды данных используют Airflow для ETL/ELT-процессов, регулярных отчетов, обучения моделей, загрузки файлов, синхронизации витрин и технических проверок. Python-код DAG хранится в репозитории и проходит обычное ревью.

Для совсем простых задач Airflow может быть тяжелым. Нужны база метаданных, планировщик, исполнители и дисциплина в написании DAG. Если задача одна и выполняется редко, cron или очередь могут быть проще.

Сильные стороны и ограничения

Сильная сторона Airflow — зрелая модель зависимостей и большой набор интеграций. Он дает команде общую панель для сотен регулярных задач.

Ограничение — эксплуатационная сложность. Платформу нужно обновлять, мониторить, настраивать права и следить, чтобы DAG не превращались в неуправляемый код.

Airflow особенно полезен, когда команда начинает мыслить не отдельными скриптами, а жизненным циклом данных: кто отвечает за задачу, когда она запускается, какие входы использует, как повторить сбой и где увидеть историю выполнения.

В зрелой установке важны не только DAG. Нужны правила именования, ограничения параллельности, секреты, алерты, управление провайдерами и понятная политика перезапусков. Без этого платформа быстро превращается в еще один источник ночных сбоев.

Для небольших команд полезно начинать с нескольких аккуратных DAG и правил сопровождения. Если сразу перенести в Airflow весь хаос старых скриптов, платформа лишь сделает этот хаос более видимым.

Пример

Минимальный DAG Airflow

Пример показывает ключевую идею: задачи описаны в Python, а зависимость задается оператором между ними.

Язык: Python
from airflow.decorators import dag, task
from pendulum import datetime

@dag(start_date=datetime(2026, 1, 1), schedule="@daily", catchup=False)
def daily_report():
    @task
    def extract():
        return {"rows": 120}

    @task
    def load(data):
        print(f"loaded {data['rows']} rows")

    load(extract())

daily_report()