Sobes.tech
Middle

Mi az az Apache Airflow?

sobes.tech MI

Válasz az MI-től

Airflow egy nyílt forráskódú platform a munkafolyamatok (workflows) programozott létrehozására, ütemezésére és nyomon követésére. Lehetővé teszi feladatok és azok függőségeinek meghatározását Python kódban, vizualizálja azok gráfját (DAG), feladatok ütemezése vagy trigger-ek szerint történő futtatását, valamint azok végrehajtásának nyomon követését webes felületen.

Az Airflow fő összetevői:

  • Scheduler: Elindítja az ütemezett munkafolyamatokat.
  • Webserver: Felhasználói felületet biztosít a kezeléshez és nyomon követéshez.
  • Worker(s): Feladatokat hajtanak végre (az Executor-től függően).
  • Database: Tárolja a munkafolyamatok állapotát, feladatokat, konfigurációkat és történelmet.

A DAG (Directed Acyclic Graph) az Airflow fő fogalma. Egy DAG egy feladatok (operatorok) halmazát jelenti, amelyek függőségekkel vannak összekötve, irányított ciklusmentes gráf formájában.

Operator példák:

  • BashOperator: Bash parancsok végrehajtása.
  • PythonOperator: Python függvények végrehajtása.
  • PostgresOperator: SQL lekérdezések végrehajtása PostgreSQL-ben.

Az elosztott architektúra lehetővé teszi az Airflow skálázását különböző végrehajtókkal:

  • SequentialExecutor: Tesztekhez, feladatokat egymás után futtat.
  • LocalExecutor: Feladatokat párhuzamosan futtat egy gépen.
  • CeleryExecutor: A Celery-t használja a feladatok elosztott végrehajtásához több worker-en.
  • KubernetesExecutor: Minden feladatot külön Kubernetes podban futtat.

Az Airflow előnyei:

  • Programozott létrehozás: A workflow-k Python kódban vannak definiálva.
  • Dinamikus: A DAG-ok dinamikusan generálhatók.
  • Bővíthető: Könnyen készíthet saját operatorokat és hookokat.
  • Skálázható: Az architektúra lehetővé teszi a rendszer skálázását.
  • Felhasználói felület: Felhasználóbarát webes felület a monitorozáshoz és kezeléshez.