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