# Airflow क्या है और क्या नहीं — Apache Airflow: Data Pipelines का Orchestration

Source: https://www.geekswithgeeks.com/hi/airflow/af-what-is

> Airflow को workflow orchestrator के रूप में वर्णित करें और जानें कि उसका उपयोग किसके लिए नहीं करना चाहिए।

## Orchestrator है, data engine नहीं

**Apache Airflow** **workflows** को लिखने, schedule करने और monitor करने वाला open-source platform है। Workflow निर्भरताओं वाले **tasks** का **DAG** (directed acyclic graph) है, जो सामान्य Python में परिभाषित होता है। Airflow तय करता है कि चीज़ें **कब** चलें, **किस क्रम** में, विफलताओं को retry करता है और इतिहास UI में दर्ज करता है। यह **orchestrator** है: उसे Spark, warehouse, dbt या API को भारी काम करने को कहना चाहिए, अपने workers के भीतर बड़े datasets प्रोसेस नहीं करने चाहिए। यह स्पष्ट schedule वाले **batch** workflows के लिए बना है, real-time streaming के लिए नहीं।

## Python में परिभाषित करें, schedule पर चलाएँ

आप workflows Python कोड में लिखते हैं; Airflow उन्हें schedule करता है, tasks क्रम से चलाता है और दिखाता है कि क्या हुआ।

![चार चरण: परिभाषित, schedule, निष्पादन, निगरानी।](assets/figures/airflow/section-1-map.svg) — चित्र 1.1 — परिभाषित, schedule, निष्पादन और निगरानी।

## रेलवे कंट्रोल रूम

कंट्रोल रूम समय-सारणी तय करता है, संकेत देता है कि कौन-सी गाड़ी आगे बढ़े और देरी दर्ज करता है। वह गाड़ियाँ ख़ुद नहीं खींचता; इंजन खींचते हैं। Airflow समय-सारणी तय और monitor करता है; खींचने का काम आपके systems करते हैं।

## सही tool चुनें

Event streams के लिए Kafka या Flink; एक server पर एक cron job के लिए सादी cron प्रविष्टि काफ़ी हो सकती है। जब कई निर्भर steps हों और retries, इतिहास व दृश्यता चाहिए, तब Airflow चुनें।

**Quiz:** Airflow किसमें सबसे अच्छा है?

- [ ] Real-time stream processing
- [ ] अपने workers के भीतर विशाल datasets प्रोसेस करना
- [x] निर्भर tasks के batch workflows को schedule और monitor करना
- [ ] Web pages परोसना

*Answer:* निर्भर tasks के batch workflows को schedule और monitor करना. Airflow orchestration करता है; भारी काम उन systems में होना चाहिए जो उसके लिए बने हैं।
