Jinja के साथ टेम्पलेटिंग

Python में Apache Airflow परिचय

Mike Metzger

Data Engineer

टेम्पलेट क्या है?

  • एक तय फ़ॉर्मेट जिससे Airflow जानकारी अपने-आप बदल दे
  • अक्सर सादा टेक्स्ट / टेक्स्ट फाइलें
  • एक्सेस और री-यूज़ आसान होता है

 

प्लेसहोल्डर वाले टेम्पलेट का चित्र, जहाँ मान बदले जाते हैं

Python में Apache Airflow परिचय

Jinja क्या है?

  • सिंपल टेक्स्ट-बेस्ड टेम्पलेटिंग लैंग्वेज
  • Airflow से आगे कई टूल्स में उपयोग
  • {{ ... }} एक टेम्पलेट सब्स्टीट्यूशन दर्शाता है
    • Python f-string जैसा
  • और भी डायनेमिक उपयोग, for लूप्स का सपोर्ट

डबल-ब्रेस सब्स्टीट्यूशन वाले Jinja टेम्पलेट का चित्र

Python में Apache Airflow परिचय

Airflow Jinja फंक्शन

  • logical_date: जब Dag रन होता है
  • ds: YYYY-MM-DD फ़ॉर्मेट में logical_date
  • logical_date.year, logical_date.month, logical_date.day: तारीख़ के हिस्सों तक पहुँचें
  • params: Dag रन के रनटाइम पैरामीटर
  • कैलकुलेशन, लूप्स, आदि
    • macros.ds_add: डेट कैलकुलेशन की सुविधा देता है
Python में Apache Airflow परिचय

SmtpNotifier का उदाहरण

  • सब्जेक्ट फ़ील्ड में सब्स्टीट्यूशन
@dag(dag_id=`sales_etl`,
     on_failure_callback=SmtpNotifier(
         to='[email protected]',
         from_email='[email protected]',

subject='sales_etl on {{ logical_date }} has failed!' ) )
  • Subject: sales_etl on 2026-04-30 failed!
Python में Apache Airflow परिचय

FileSensor का उदाहरण

  • filepath को डायनेमिक रूप से कॉन्फ़िगर करें
  • ds ( YYYY-MM-DD में logical_date ) के पिछले दिन की फाइलें देखें
  • macros.ds_add का उपयोग करें
    filewatcher = FileSensor(
    task_id="wait_for_files",
    filepath="/data/{{ macros.ds_add(ds, -1) }}/input.csv",
    ...
    )
    
  • अगर ds 2026-04-30 है, तो filepath /data/2026-04-29/input.csv होगा
Python में Apache Airflow परिचय

Jinja नोट्स

  • हर जगह उपयोग नहीं हो सकता
  • templated एट्रिब्यूट्स के लिए डॉक्यूमेंटेशन देखें
  • कोड व्यू चेक करें

Airflow Dag कोड व्यू, जो Dag को परिभाषित करने वाला read-only Python सोर्स दिखाता है

Python में Apache Airflow परिचय

अभ्यास करते हैं!

Python में Apache Airflow परिचय

Preparing Video For Download...