Middle
Apache Airflow nima?
sobes.tech AI
AIdan javob
Apache Airflow — bu platforma uchun ishlash jarayonlarini (workflow) yozish, rejalashtirish va monitoring qilish uchun mo'ljallangan. Bu ETL/ELT jarayonlarini boshqarish, vazifalarni jadval bo'yicha ishga tushirish va turli operatsiyalarni avtomatlashtirish uchun ishlatiladi.
Asosiy komponentlar:
- Scheduler: Vazifalarni trigger qilish va ularni bajarishga yuborish uchun javobgar.
- Webserver: DAGlarni monitoring qilish, vazifalarni boshqarish va loglarni ko'rish uchun foydalanuvchi interfeysini taqdim etadi.
- Worker: Vazifalarni (Operators) ishga tushiradi.
- Database: Airflow holatini, DAG metadatalarini, vazifa va ishga tushirish ma'lumotlarini saqlaydi.
Xususiyatlar va afzalliklar:
- Python: Ish jarayonlari Python tilida yoziladi.
- Dinamik: DAGlar dinamik tarzda yaratilishi mumkin.
- Extensible: Maxsus operatorlar va hooklarni osongina yaratish mumkin.
- Scalable: Arxitektura komponentlarni gorizontal ravishda kengaytirishga imkon beradi.
- GUI: Monitoring va debugging uchun ma'lumotli veb-interfeys.
Oddiy DAG misoli:
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 # Vazifalar ketma-ketligini belgilash