पाठ 25 / 25
Revision: Cheat Sheet और Self-Check
पूरे कोर्स की Airflow की अवधारणाओं, patterns और प्रथाओं की दोहराई करें।
Cheat sheet
अवधारणाएँ: DAG, task, operator, DAG run, task instance; scheduler, executor, workers, metadata DB, API server। लिखना: with DAG/@dag, @task (TaskFlow), >> और lists, schedule, start_date, catchup; data interval का मतलब run पिछले interval को ढकता है। डेटा: छोटे मानों के लिए XCom (स्थान भेजें), Jinja ({{ ds }}), Connections/secrets backend। नियंत्रण: @task.branch, trigger rules (all_done, one_failed, none_failed_min_one_success), sensors (reschedule/deferrable + timeout), dynamic mapping .expand()। डिज़ाइन: idempotent, तारीख़-partitioned, ELT, हल्के tasks, सुरक्षित backfills। संचालन: retries + backoff + timeouts + callbacks, pools, monitoring + डेटा-गुणवत्ता जाँचें। Deploy: Git, DagBag import test के साथ CI, pinned versions, PostgreSQL, Celery/Kubernetes executors, managed services।
इंटरव्यू में पूछे जाने वाले सवाल
इन्हें समझाने को तैयार रहें: DAG क्या है और scheduler कैसे काम करता है, tasks idempotent क्यों होने चाहिए, data interval और catchup का क्या मतलब है, XComs छोटे क्यों रहें, poke और deferrable sensors में अंतर, branch के बाद trigger rules कैसे काम करते हैं, और DAG बदलाव सुरक्षित रूप से deploy और test कैसे करेंगे।
त्वरित जाँच: 5 अक्टूबर की logical date वाला दैनिक DAG किस अवधि को ढकता है?
- सिर्फ़ वह मिनट जब शुरू होता है
- 6 से 7 अक्टूबर
- 5 अक्टूबर 00:00 से 6 अक्टूबर 00:00, उसके ख़त्म होने के बाद चलता है
- पूरा महीना
Answer
5 अक्टूबर 00:00 से 6 अक्टूबर 00:00, उसके ख़त्म होने के बाद चलता है — Data interval logical date से शुरू होने वाला दिन है; run उस interval के बीतने पर शुरू होता है।
त्वरित जाँच: Branch के बाद सब कुछ, join task समेत, skipped है। संभावित सुधार क्या है?
- Join task का trigger_rule none_failed_min_one_success रखें
- Branch हटाएँ
- Retries बढ़ाएँ
- datetime.now() उपयोग करें
Answer
Join task का trigger_rule none_failed_min_one_success रखें — डिफ़ॉल्ट all_success नियम join को skip कर देता है जब एक upstream रास्ता skipped हो।
त्वरित जाँच: 5 GB DataFrame को tasks के बीच भेजने का कौन-सा तरीक़ा सही है?
- Email करें
- DataFrame लौटाएँ ताकि वह metadata DB में रखा जाए
- Logs में छापें
- उसे object storage में लिखें और path XCom से भेजें
Answer
उसे object storage में लिखें और path XCom से भेजें — XComs छोटे मानों के लिए हैं; बड़ा डेटा बाहरी storage में होना चाहिए।