Apache Airflow
Apache Airflow - это платформа, позволяющая программно создавать, планировать и контролировать рабочие процессы.
Когда рабочие процессы определяются в виде кода, они становятся более удобными для сопровождения, версионирования, тестирования и совместной работы.
Используйте Airflow для создания рабочих процессов и оркестровки конвейеров данных в виде направленных ациклических графов (DAG) задач. Планировщик Airflow выполняет ваши задачи на массиве рабочих, следуя заданным зависимостям. Богатый набор утилит командной строки позволяет быстро выполнять сложные операции над DAG. Богатый пользовательский интерфейс позволяет легко визуализировать конвейеры, работающие в производстве, отслеживать прогресс и при необходимости устранять неполадки.
История
Apache Airflow - это проект, начатый в Airbnb в октябре 2014 года. Это очень гибкий инструмент, который можно использовать для автоматизации всевозможных процессов, включая процессы ETL.
Airflow набирает популярность в последние пару лет и входит в список самых популярных инструментов (по статистике StackShare). Многие компании уже сегодня используют Airflow в производстве.
Что такое рабочий процесс?
Рабочий процесс - это описание того, чего Вы хотите достичь. DAG описывает, как этого достичь. Это разница между «мне нужно добраться из Нью-Йорка в Сан-Франциско» и «мой рейс вылетает из аэропорта Кеннеди вовремя и прибывает в аэропорт Лос-Анджелеса после пересадки в Денвере».
Apache Airflow - это инструмент для выражения и выполнения рабочих процессов в виде направленных ациклических графов (DAG).
Он оснащен красивым пользовательским интерфейсом, в котором Вы можете увидеть все DAG, их статус, время выполнения, текущее выполнение или сбой, наличие задач, которые необходимо выполнить, и многое другое.
Планировщик Airflow выполняет задачи на массиве рабочих узлов, следуя указанным зависимостям. Богатый набор утилит командной строки позволяет выполнять сложные операции над группами DAG в кратчайшие сроки. Богатый пользовательский интерфейс позволяет легко визуализировать конвейеры, работающие в производстве, отслеживать прогресс и устранять неполадки при необходимости.
Пример рабочего процесса на Apache Airflow
Apache Airflow позволяет управляющим данными (обычно это аналитик или инженер) создавать рабочие процессы, которые помогают сортировать и взаимодействовать с необработанными данными. Он преобразует эти необработанные данные в биты информации, которые понятны как сотрудникам организации, занимающейся данными, так и внешним пользователям. Например, аналитик данных может настроить рабочий процесс, который ежедневно подсчитывает прибыль от продаж. Это означает, что рабочий процесс начинается с получения данных о покупке от клиента, их загрузки, преобразования в значение, понятное таблице или базе данных, а затем - создания графика или конечного продукта, демонстрирующего это конечное значение.
Характеристики архитектуры Apache Airflow
Согласно определению Qubole, характеристики архитектуры Apache Airflow следующие:
- Динамичность: Конвейеры Airflow конфигурируются как код (Python), что позволяет динамически генерировать конвейеры. Это позволяет пользователям писать код, который динамически описывает трубопроводы.
- Расширяемость: Определяйте собственные операторы и исполнители и расширяйте библиотеку, чтобы она соответствовала тому уровню абстракции, который подходит для Вашей среды.
- Элегантность: Конвейеры Airflow отличаются элегантностью и явностью. Параметризация Ваших скриптов встроена в ядро Airflow с помощью шаблонизатора Jinja.
- Масштабируемость: Airflow имеет модульную архитектуру и использует очередь сообщений для взаимодействия и организации работы произвольного количества рабочих.



