Middle
144
questionbank
Что такое Apache Airflow?
Ответ от нейросети
sobes.tech AI
Apache Airflow — это платформа для программного создания, планирования и мониторинга рабочих процессов (workflow) в виде направленных ациклических графов (DAG). Используется для управления ETL/ELT процессами, запуска задач по расписанию и автоматизации различных операций.
Основные компоненты:
- Scheduler: Отвечает за триггеринг задач и их передачу на выполнение.
- Webserver: Предоставляет пользовательский интерфейс для мониторинга DAGs, управления задачами и просмотра логов.
- Worker: Запускает задачи (Operators).
- Database: Хранит состояние Airflow, метаданные DAGs, информацию о задачах и запусках.
Особенности и преимущества:
- Python: Рабочие процессы пишутся на Python.
- Dynamic: DAGs могут быть генерированы динамически.
- Extensible: Легко создавать кастомные операторы и хуки.
- Scalable: Архитектура позволяет горизонтально масштабировать компоненты.
- GUI: Информативный веб-интерфейс для мониторинга и отладки.
Пример простого DAG:
from __future__ import annotations
import pendulum
from airflow.models.dag import DAG
from airflow.operators.bash import BashOperator
with DAG(
dag_id="simple_bash_dag",
start_date=pendulum.datetime(2023, 1, 1, tz="UTC"),
schedule=None,
catchup=False,
tags=["example"],
) as dag:
task1 = BashOperator(
task_id="print_date",
bash_command="date",
)
task2 = BashOperator(
task_id="sleep_5",
bash_command="sleep 5",
)
task3 = BashOperator(
task_id="print_hello",
bash_command="echo hello",
)
task1 >> task2 >> task3 # Определение порядка выполнения задач