Sobes.tech
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