Sobes.tech
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 # Определение порядка выполнения задач