# Airflow को हल्का रखें — Apache Airflow: Data Pipelines का Orchestration

Source: https://www.geekswithgeeks.com/hi/airflow/design-lightweight

> भारी गणना Spark, dbt या warehouse को सौंपें और tasks छोटे व केंद्रित रखें।

## Orchestrate करें, गणना नहीं

भारी काम वहाँ चलाएँ जहाँ उसे होना चाहिए: **Spark** job submit करें, **dbt** build चलाएँ, **warehouse** के भीतर SQL चलाएँ, या अपने संसाधनों व निर्भरताओं वाला **Kubernetes pod** (`KubernetesPodOperator`) शुरू करें, और Airflow को नतीजा ट्रैक करने दें। इससे workers पर बोझ नहीं पड़ता, अलग jobs की Python निर्भरताएँ नहीं टकरातीं, और स्वतंत्र रूप से scale होता है। Tasks **छोटे और केंद्रित** रखें (हर एक का एक स्पष्ट काम) ताकि विफलताएँ समझना आसान हो और retries कम काम दोहराएँ, और जहाँ व्यावहारिक हो **ELT** चुनें (पहले कच्चा डेटा लोड करें, warehouse के भीतर transform करें)।

## सिर्फ़ orchestrate करने वाला task

भारी transformation warehouse में dbt build से होता है; Airflow बस उसे शुरू करता और देखता है। उदाहरण।

```python
dbt_build = BashOperator(
    task_id="dbt_build",
    bash_command="cd /opt/dbt && dbt build --select tag:daily --vars '{run_date: {{ ds }}}'",
    execution_timeout=timedelta(hours=1),
    retries=1,
)
```

**Quiz:** भारी डेटा transformation आम तौर पर कहाँ चलना चाहिए?

- [x] उन systems में जो उसके लिए बने हैं, जैसे Spark या warehouse
- [ ] Airflow scheduler के भीतर
- [ ] XCom के भीतर
- [ ] Browser में

*Answer:* उन systems में जो उसके लिए बने हैं, जैसे Spark या warehouse. Airflow काम का समन्वय करता है; विशेष engines डेटा प्रोसेस करते हैं।
