Sobes.tech
Middle

Czym jest DAG w Airflow?

sobes.tech AI

Odpowiedź od AI

DAG (Directed Acyclic Graph) w Apache Airflow to struktura opisująca kolejność zadań (tasks) i ich zależności w postaci skierowanego grafu acyklicznego.

Każdy wierzchołek grafu to zadanie, a krawędzie pokazują kolejność wykonywania: zadanie B może rozpocząć się tylko po pomyślnym zakończeniu zadania A, jeśli istnieje krawędź z A do B.

Główne cechy DAG w Airflow:

  • Skierowany — zadania przebiegają w określonym kierunku, odzwierciedlając przepływ danych lub procesów.
  • Acykliczny — brak cykli, aby uniknąć nieskończonych powtórzeń.

Przykład prostego DAG w Pythonie w Airflow:

from airflow import DAG
from airflow.operators.bash import BashOperator
from datetime import datetime

default_args = {'start_date': datetime(2024, 1, 1)}

dag = DAG('przyklad_dag', default_args=default_args, schedule_interval='@daily')

# Definiujemy zadania
start = BashOperator(task_id='start', bash_command='echo Start', dag=dag)
process = BashOperator(task_id='process', bash_command='echo Processing', dag=dag)
end = BashOperator(task_id='end', bash_command='echo End', dag=dag)

# Definiujemy zależności
start >> process >> end

W ten sposób DAG w Airflow to sposób opisu i automatyzacji złożonych procesów roboczych z jasno określoną kolejnością wykonywania.