Sobes.tech
Middle

Čo je Apache Airflow?

sobes.tech AI

Odpoveď od AI

Airflow je open-source platforma na programovom základe pre tvorby, plánovania a sledovania workflow-ov (pracovných tokov). Umožňuje definovať úlohy a ich závislosti v Python kóde, vizualizovať ich graf (DAG), spúšťať úlohy podľa plánu alebo triggerov a sledovať ich vykonávanie cez webové rozhranie.

Hlavné komponenty Airflow:

  • Scheduler: Spúšťa naplánované workflow.
  • Webserver: Poskytuje používateľské rozhranie na správu a sledovanie.
  • Worker(s): Vykonávajú úlohy (závisí od Executor-u).
  • Database: Ukladá stav workflow, úloh, konfigurácie a históriu.

DAG (Directed Acyclic Graph) je hlavná koncepcia Airflow. DAG predstavuje množinu úloh (operatorov), prepojených závislosťami vo forme smerovaného acyklického grafu.

Príklady operatorov:

  • BashOperator: Vykonáva bash príkazy.
  • PythonOperator: Vykonáva Python funkcie.
  • PostgresOperator: Vykonáva SQL dotazy v PostgreSQL.

Distribuovaná architektúra umožňuje škálovať Airflow pomocou rôznych executorov:

  • SequentialExecutor: Pre testovanie, vykonáva úlohy sekvenčne.
  • LocalExecutor: Spúšťa úlohy paralelne na jednej mašine.
  • CeleryExecutor: Používa Celery pre distribuované vykonávanie úloh na viacerých workeroch.
  • KubernetesExecutor: Spúšťa každú úlohu v samostatnom Kubernetes podu.

Výhody Airflow:

  • Programové vytváranie: Workflow sú definované v Python kóde.
  • Dynamické: DAG-y môžu byť generované dynamicky.
  • Rozšíriteľné: Jednoducho vytvárať vlastné operatori a hooky.
  • Škálovateľné: Architektúra umožňuje škálovať systém.
  • Používateľské rozhranie: Priateľské webové rozhranie na sledovanie a správu.