Middle
Čo je Apache Airflow?
sobes.tech AI
Odpoveď od AI
Apache Airflow je platforma na tvorbu, plánovanie a monitorovanie pracovných tokov (workflow) vo forme smerovaných acyklických grafov (DAG). Používa sa na riadenie ETL/ELT procesov, spúšťanie úloh podľa plánu a automatizáciu rôznych operácií.
Hlavné komponenty:
- Scheduler: Zodpovedá za triggerovanie úloh a ich odovzdanie na vykonanie.
- Webserver: Poskytuje používateľské rozhranie na monitorovanie DAGov, správu úloh a prehliadanie logov.
- Worker: Spúšťa úlohy (Operators).
- Database: Ukladá stav Airflow, metadata DAGov, informácie o úlohách a behu.
Vlastnosti a výhody:
- Python: Pracovné procesy sú písané v Pythone.
- Dynamický: DAGy môžu byť generované dynamicky.
- Rozšíriteľný: Jednoducho vytváranie vlastných operátorov a hookov.
- Škálovateľný: Architektúra umožňuje horizontálne škálovanie komponentov.
- GUI: Informačné webové rozhranie pre monitorovanie a ladenie.
Príklad jednoduchého 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 # Určenie poradia vykonávania úloh