Middle
Mi az az Apache Airflow?
sobes.tech MI
Válasz az MI-től
Az Apache Airflow egy platform a munkafolyamatok (workflow) programozására, ütemezésére és monitorozására irányított aciklikus gráfok (DAG) formájában. Az ETL/ELT folyamatok kezelésére, feladatok ütemezett indítására és különféle műveletek automatizálására használják.
Fő összetevők:
- Scheduler: Feladata a feladatok triggerelése és azok végrehajtásra való átadása.
- Webserver: Felhasználói felületet biztosít a DAG-ok monitorozásához, feladatok kezeléséhez és naplók megtekintéséhez.
- Worker: Végrehajtja a feladatokat (Operators).
- Database: Tárolja az Airflow állapotát, a DAG metaadatokat, valamint a feladatok és futtatások adatait.
Jellemzők és előnyök:
- Python: A munkafolyamatokat Pythonban írják.
- Dinamikus: A DAG-ok dinamikusan generálhatók.
- Bővíthető: Könnyen létrehozhatók egyedi operátorok és hook-ok.
- Skálázható: Az architektúra lehetővé teszi a komponensek horizontális skálázását.
- GUI: Informatív webes felület a monitorozáshoz és hibakereséshez.
Egyszerű DAG példa:
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 # A feladatok végrehajtási sorrendjének meghatározása