पाठ 18 / 25

Airflow को हल्का रखें

भारी गणना 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 बस उसे शुरू करता और देखता है। उदाहरण।

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,
)

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

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

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