Sobes.tech
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 # Тапсырмалардың орындалу тәртібін анықтау