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 # Иштердин аткарылыш тартибин аныктоо