Sobes.tech
Middle

Šta je Apache Airflow?

sobes.tech АИ

Одговор од АИ

Apache Airflow је платформа за креирање, планирање и надгледање радних токова (workflow) у облику усмерених ацикличних графова (DAG). Користи се за управљање ETL/ELT процесима, покретање задатака према распореду и аутоматизацију разних операција.

Главне компоненте:

  • Scheduler: Одговоран за триггеровање задатака и њихово преношење на извршавање.
  • Webserver: Обезбеђује кориснички интерфејс за надгледање DAG-ова, управљање задацима и преглед логова.
  • Worker: Покреће задатке (Operators).
  • Database: Чува стање Airflow-а, метаподатке DAG-ова, информације о задацима и извршењима.

Карактеристике и предности:

  • Python: Радни процеси се пишу у Python-у.
  • Динамично: DAG-ови могу бити генерисани динамично.
  • Прошириво: Лако креирати прилагођене операторе и hook-ове.
  • Мащабно: Архитектура омогућава хоризонтално скалирање компоненти.
  • 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 # Одређивање редоследа извршавања задатака