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