Middle
Mis on Apache Airflow?
sobes.tech AI
Vastus AI-lt
Apache Airflow on platvorma darba plūsmu (workflow) programmēšanai, plānošanai un uzraudzībai, izmantojot virziena acikliskas grafikus (DAG). To izmanto ETL/ELT procesu pārvaldībai, uzdevumu izpildes grafiku un dažādu operāciju automatizācijai.
Galvenās sastāvdaļas:
- Scheduler: atbild par uzdevumu aktivizēšanu un to nodošanu izpildei.
- Webserveris: nodrošina lietotāja saskarni DAG uzraudzībai, uzdevumu pārvaldībai un žurnālu skatīšanai.
- Worker: izpilda uzdevumus (Operators).
- Database: glabā Airflow stāvokli, metadatus par DAG, informāciju par uzdevumiem un izpildes datiem.
Īpatnības un priekšrocības:
- Python: darba plūsmas rakstītas Python valodā.
- Dinamisks: DAG var tikt ģenerēti dinamiski.
- Paplašināms: viegli izveidot pielāgotus operatorus un hokus.
- Lielāks mērogs: arhitektūra ļauj horizontāli mērogot komponentes.
- GUI: informatīva tīmekļa saskarne uzraudzībai un atkļūdošanai.
Piemērs vienkāršam DAG:
no __future__ import annotations
import pendulum
no airflow.models.dag import DAG
no airflow.operators.bash import BashOperator
ar DAG(
dag_id="simple_bash_dag",
start_date=pendulum.datetime(2023, 1, 1, tz="UTC"),
schedule=None,
catchup=False,
tags=["example"],
) kā 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 # Uzdevumu izpildes secības noteikšana