Sobes.tech
Middle

Čo je Apache Airflow?

sobes.tech AI

Odpoveď od AI

Apache Airflow je platforma na tvorbu, plánovanie a monitorovanie pracovných tokov (workflow) vo forme smerovaných acyklických grafov (DAG). Používa sa na riadenie ETL/ELT procesov, spúšťanie úloh podľa plánu a automatizáciu rôznych operácií.

Hlavné komponenty:

  • Scheduler: Zodpovedá za triggerovanie úloh a ich odovzdanie na vykonanie.
  • Webserver: Poskytuje používateľské rozhranie na monitorovanie DAGov, správu úloh a prehliadanie logov.
  • Worker: Spúšťa úlohy (Operators).
  • Database: Ukladá stav Airflow, metadata DAGov, informácie o úlohách a behu.

Vlastnosti a výhody:

  • Python: Pracovné procesy sú písané v Pythone.
  • Dynamický: DAGy môžu byť generované dynamicky.
  • Rozšíriteľný: Jednoducho vytváranie vlastných operátorov a hookov.
  • Škálovateľný: Architektúra umožňuje horizontálne škálovanie komponentov.
  • GUI: Informačné webové rozhranie pre monitorovanie a ladenie.

Príklad jednoduchého 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 # Určenie poradia vykonávania úloh