Middle
Apache Airflow чист?
sobes.tech AI
Ҷавоб аз AI
Apache Airflow — бұл жұмыс процестерін (workflow) бағытталған ацикликалық графтар (DAG) түрінде бағдарламалау, жоспарлау және бақылау платформасы. Ол ETL/ELT процестерін басқару, тапсырмаларды кестеге сәйкес іске қосу және әртүрлі операцияларды автоматтандыру үшін пайдаланылады.
Негізгі компоненттері:
- Scheduler: Тапсырмаларды іске қосу және орындауға жіберу жауапкершілігі.
- Webserver: DAG-тарды бақылау, тапсырмаларды басқару және журналдарды қарау үшін пайдаланушы интерфейсін қамтамасыз етеді.
- Worker: Тапсырмаларды (Operators) іске қосады.
- Database: Airflow жағдайын, DAG метадеректерін, тапсырмалар мен іске қосулар туралы ақпаратты сақтайды.
Ерекшеліктері мен артықшылықтары:
- Python: Жұмыс процестері Python-да жазылады.
- Динамикалық: DAG-лар динамикалық түрде жасалуы мүмкін.
- Кеңейтілетін: Арнайы операторлар мен hook-тарды оңай жасауға болады.
- Масштабталатын: Архитектура компоненттердің көлденең масштабталуын қамтамасыз етеді.
- GUI: Мониторинг және қателерді түзету үшін ақпараттық веб-интерфейс.
Қарапайым 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 # Тапсырмалардың орындалу тәртібін анықтау