Sobes.tech
Middle

Ի՞նչ է Apache Airflow-ը։

sobes.tech AI

Պատասխան AI-ից

Apache Airflow-ը հարթակ է՝ աշխատանքային հոսքերը (workflow) ստեղծելու, պլանավորելու և մոնիտորինգի համար՝ ուղղված անցնցվող գրաֆիկների (DAG) ձևով։ Այն օգտագործվում է ETL/ELT գործընթացների կառավարում, ժամանակացույցով առաջադրանքների գործարկում և տարբեր գործողությունների ավտոմատացում։

Հիմնական բաղադրիչները՝

  • Scheduler՝ պատասխանատու առաջադրանքների թրիգերների համար և դրանց կատարման համար փոխանցման համար։
  • Webserver՝ օգտագործողի ինտերֆեյս՝ DAG-ների մոնիտորինգի, առաջադրանքների կառավարում և լոգների դիտման համար։
  • Worker՝ առաջադրանքների (Operators) գործարկում։
  • Database՝ պահում է Airflow-ի վիճակը, մետադատվյալները, առաջադրանքների և գործարկումների մասին տեղեկատվությունը։

Նկարագրություններ և առավելություններ՝

  • Python՝ աշխատանքային գործընթացները գրվում են Python-ով։
  • Դինամիկ՝ DAG-ները կարող են դինամիկորեն ստեղծվել։
  • Տարածական՝ հեշտ է ստեղծել հարմարեցված օպերատորներ և hook-եր։
  • Հարավային՝ ճարտարապետությունը թույլ է տալիս հորիզոնական մասշտաբային ընդլայնում։
  • GUI՝ տեղեկատվական վեբ ինտերֆեյս՝ մոնիտորինգ և դեբագինգ։

Պարզ օրինակ՝

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 # Առաջադրանքների կատարման կարգը սահմանելը