पाठ 4 / 25

मूल अवधारणाएँ: DAG, Task, Run, Instance

DAG परिभाषा, DAG run, task और task instance में फ़र्क़ करें।

परिभाषा बनाम निष्पादन

DAG परिभाषा है: tasks और उनकी निर्भरताएँ तथा एक schedule। Task काम की एक इकाई है, जो operator (जैसे BashOperator जैसा template) या @task decorator से बनती है। DAG के हर बार schedule होने पर Airflow एक DAG run बनाता है; उसका हर task अपनी स्थिति (queued, running, success, failed, skipped, up_for_retry…) वाला task instance बनता है। DAG run अपनी logical date (नए शब्दों में data interval) से पहचाना जाता है, जो बताती है कि run समय के किस टुकड़े के बारे में है, ज़रूरी नहीं कि कब चलता है।

पहला DAG

dags/ folder में सहेजें। यह Airflow 3 imports (airflow.sdk) उपयोग करता है; Airflow 2 में समतुल्य imports from airflow import DAG और from airflow.operators.bash import BashOperator हैं। {{ ds }} logical date है, YYYY-MM-DD रूप में। मैंने इसे Airflow 3.0.6 पर airflow dags test hello_airflow 2026-10-01 से चलाया और say_hello ने नीचे की पंक्ति छापी।

from datetime import datetime

from airflow.sdk import DAG
from airflow.providers.standard.operators.bash import BashOperator

with DAG(
    dag_id="hello_airflow",
    start_date=datetime(2026, 9, 1),
    schedule="@daily",
    catchup=False,
    tags=["demo"],
) as dag:
    say_hello = BashOperator(task_id="say_hello", bash_command="echo Hello from {{ ds }}")
    say_bye = BashOperator(task_id="say_bye", bash_command="echo Bye")

    say_hello >> say_bye

Output:

Hello from 2026-10-01

त्वरित जाँच: Task instance क्या है?

  • स्वयं DAG फ़ाइल
  • किसी ख़ास DAG run में एक task, अपनी स्थिति के साथ
  • Metadata database
  • एक worker मशीन
Answer

किसी ख़ास DAG run में एक task, अपनी स्थिति के साथ — Task instance किसी ख़ास run के लिए task का runtime रिकॉर्ड है।