Sobes.tech
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