Deferrable ऑपरेटर

Airflow के साथ Data Pipelines बनाना

Volker Janz

Senior Developer Advocate at Astronomer

सेंसर की समस्या

वर्कर स्लॉट घेरते सेंसर

 

  • Poke मोड: सेंसर पूरे समय वर्कर स्लॉट पकड़े रखता है
  • लंबे समय चलने वाले सेंसर अन्य टास्क को भूखा रखते हैं
Airflow के साथ Data Pipelines बनाना

Reschedule मोड

Poke मोड (डिफॉल्ट)

from airflow.providers.standard.sensors.filesystem \
    import FileSensor

wait = FileSensor(
    task_id="wait",
    filepath="/data/report.csv",
    mode="poke",
    poke_interval=30,
)
  • स्लॉट पूरे समय व्यस्त रहता है

Reschedule मोड

from airflow.providers.standard.sensors.filesystem \
    import FileSensor

wait = FileSensor(
    task_id="wait",
    filepath="/data/report.csv",
    mode="reschedule",
    poke_interval=300,
)
  • जाँचों के बीच स्लॉट खाली रहता है
Airflow के साथ Data Pipelines बनाना

Deferrable मोड

Triggerer द्वारा संभाला गया डिफर्ड सेंसर

  • टास्क Triggerer प्रोसेस को हैंडऑफ करता है
  • Triggerer सैकड़ों समकालिक प्रतीक्षाओं के लिए async I/O उपयोग करता है
  • प्रतीक्षा के दौरान शून्य वर्कर स्लॉट उपयोग होते हैं
Airflow के साथ Data Pipelines बनाना

Deferrable सक्षम करना

from airflow.providers.standard.sensors.filesystem import FileSensor

wait_for_data = FileSensor(
    task_id="wait_for_data",
    filepath="/data/incoming/report.csv",

deferrable=True,
poke_interval=30, timeout=3600, )

 

  • poke_interval और timeout अब भी लागू होते हैं
Airflow के साथ Data Pipelines बनाना

प्रत्येक मोड कब उपयोग करें

मोड किसके लिए बेहतर वर्कर स्लॉट
poke छोटी प्रतीक्षा (< 1 min) पूरे समय पकड़ा
reschedule मध्यम प्रतीक्षा, Triggerer नहीं जाँचों के बीच खाली
deferrable लंबी प्रतीक्षा, कई सेंसर कभी उपयोग नहीं

 

  • यदि Triggerer चल रहा है, तो deferrable लगभग हमेशा सही डिफॉल्ट है
Airflow के साथ Data Pipelines बनाना

Global deferrable सेटिंग

AIRFLOW__OPERATORS__DEFAULT_DEFERRABLE=True

 

  • सभी संगत ऑपरेटर अपने-आप deferrable मोड उपयोग करेंगे
  • Dag कोड में कोई बदलाव नहीं चाहिए
  • ज़रूरत हो तो प्रति-ऑपरेटर deferrable=False से ओवरराइड करें
Airflow के साथ Data Pipelines बनाना

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

Airflow के साथ Data Pipelines बनाना

Preparing Video For Download...