Airflow Variables

Python में Apache Airflow परिचय

Mike Metzger

Data Engineer

वैरिएबल्स क्या हैं?

  • कॉन्फ़िगरेशन वैल्यूज़ के लिए उपयोगी
  • फ़ाइल पाथ, API endpoints, environments, आदि
  • टास्क से क्वेरी कर सकते हैं, कोड, Airflow UI, या फ़ाइल से सेट कर सकते हैं
  • Dag कोड के बाहर मौजूद रहती हैं
Python में Apache Airflow परिचय

Airflow UI में वैरिएबल्स एक्सेस करना

  • Admin: Variables मेन्यू से

Admin मेन्यू खुला है और Variables विकल्प दिख रहा है वाला Airflow UI

Python में Apache Airflow परिचय

Airflow UI में वैरिएबल्स देखना

Airflow Variables पेज, खाली सूची और कोई वैरिएबल परिभाषित नहीं

Python में Apache Airflow परिचय

Airflow में वैरिएबल जोड़ना

Add Variable बटन हाइलाइटेड के साथ Airflow Variables पेज

Python में Apache Airflow परिचय

वैरिएबल एडिटर

key, value, और description फ़ील्ड्स वाले Airflow variable editor फ़ॉर्म

Python में Apache Airflow परिचय

UI में मौजूद वैरिएबल्स

सूची में एक परिभाषित वैरिएबल दिखाते हुए Airflow Variables पेज

Python में Apache Airflow परिचय

Python में वैरिएबल पढ़ना

  • airflow.sdk.Variable लाइब्रेरी का उपयोग करता है
  • Variable.get("variable_name") से पढ़ें
    # Retrieve a plain string value
    my_region = Variable.get("region")
    
  • इस केस में, my_region का मान us-eastern होगा
  • वैरिएबल न होने पर fallback दें
    # Provide a fallback if the variable doesn't exist
    env = Variable.get("current_environment", default=None)
    
  • चूँकि हमने current_environment परिभाषित नहीं किया, env None है
Python में Apache Airflow परिचय

Jinja टेम्पलेट्स में वैरिएबल्स एक्सेस करना

  • {{ var.value.variable_name }} से एक्सेसिबल
    filewatcher = FileSensor(
    task_id="wait_for_files",
    filepath="/data/{{ var.value.region }}/input.csv",
    ...
    
  • हमारे केस में, FileSensor फ़ाइल /data/us-eastern/input.csv ढूँढेगा
Python में Apache Airflow परिचय

CLI से वैरिएबल्स एक्सेस करना

  • कमांड-लाइन से वैरिएबल्स पढ़, अपडेट, डिलीट या लिस्ट कर सकते हैं
  • Read - airflow variables get <variable_name>
  • Write - airflow variables set <variable_name> <value>
  • Delete - airflow variables delete <variable_name>
  • List - airflow variables list <variable_name>
Python में Apache Airflow परिचय

JSON वैरिएबल्स

  • वैरिएबल वैल्यूज़ JSON strings हो सकती हैं
    • Variable.get("variable_name", deserialize_json=True)
    • Python dictionary लौटाता है
  • Jinja का उपयोग
    • {{ var.json.variable_name }}
Python में Apache Airflow परिचय

वैरिएबल्स सेट करना

  • वैरिएबल्स सेट करना भी संभव है
  • Variable.set("variable_name", variable_value) का उपयोग करें
  • serialize_json=True विकल्प से JSON भी रन कर सकते हैं
  • कम उपयोग करें, क्योंकि इससे अन्य Dags पर अप्रत्याशित असर पड़ सकता है
Python में Apache Airflow परिचय

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

Python में Apache Airflow परिचय

Preparing Video For Download...