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 # Одређивање редоследа извршавања задатака