Why Prefect Might Be a Better Choice Over Airflow for Python Developers on Windows
Python သမားလည်းဖြစ်တယ် Windows Server လည်း သုံးတယ်ဆိုရင် ETL Process တွေအတွက် Prefect ကိုသုံးတာက Airflow ထက် အဆင်ပြေတယ်လို့ ထင်ပါတယ်။
ဘာကြောင့်လဲဆိုတော့
1. Pythonic API
Prefect က Python အတွက် သေချာစဉ်းစားပြီးရေးထားတာကြောင့် သူ့ရဲ့ API က Airflow နဲ့စာရင် ပိုပြီး user-friendly ဖြစ်ပါတယ်။ flow နဲ့ task တွေ ရေးတဲ့အခါမှာ function တွေကိုပဲ ရေးသွားရုံပါပဲ။ (Airflow မှာတော့ Taskflow API ကို သုံးရင်လည်း ရနိုင်ပါတယ်။ ဒါပေမယ့် task ကို ထပ်ဖန်တီးရဦးမှာပါ။)
2. Local Development
Airflow လိုမျိုး setup ပိုင်းမှာ မရှုပ်ထွေးတာကြောင့် Local Development & Testing ပိုင်းမှာ ပိုမြန်စေပါတယ်။ Schedule မလုပ်သေးဘဲနဲ့ ကိုယ့်ဘာသာရေးကြည့်လိုက် စမ်းကြည့်လိုက် အလွယ်တကူ လုပ်နိုင်ပါတယ်။ Airflow မှာတော့ Testing လုပ်တဲ့အခါ အဆင့်တွေ နည်းနည်းပိုများပါတယ်။ အထူးသဖြင့် Windows သမားတွေအတွက် Development လုပ်ရတာ Prefect က ပိုအဆင်ပြေပါတယ်။
3. Windows Compatibility
Airflow နဲ့ယှဉ်ရင် Windows မှာ Compatibility Issues မရှိသလောက်ပါပဲ။ Airflow ကတာ့ Docker နဲ့ WSL ကို အခြေခံပြီး run ရတာဖြစ်လို့ setup လုပ်ရတာ မသက်သာလှပါဘူး။
4. Dynamic Workflows
Extract Transform Load flow တွေ ပြန်ပြင်ဆင်ချင်တဲ့အခါမှာလည်း အလွယ်တကူပြင်ဆင်နိုင်ပါတယ်။ Airlow ရဲ့ DAGs တွေကတော့ သိပ်ပြီး Dynamic မဖြစ်လှပါဘူး။
5. Ease of Setup
Setup လုပ်ရတာလွယ်ကူတာကြောင့် ကိုယ့်ရဲ့ ETL process တွေကို လျင်လျင်မြန်မြန်ပဲ စတင်ရေးသားနိုင်ပါတယ်။ Dependencies တွေ ထည့်သွင်းတာ၊ DAGs တွေကို orchestrating လုပ်တာတွေအတွက် Airflow က အချိန်ပိုလိုအပ်ပါတယ်။
6. State Management
Built-in state management ပါတဲ့အတွက် retries, failures နဲ့ task state transitions တွေအတွက် ဖြေရှင်းရတာ Airflow ထက်ပိုပြီးလွယ်ကူပါတယ်။
အနှစ်ချုပ်ရမယ်ဆိုရင် လိုအပ်ချက်အရ Windows environment မှာ ETL pipelines တွေကို schedule လုပ်ရမယ်ဆိုရင် Airflow ထက် Prefect ကိုပဲ ပိုပြီးတော့ recommend ပေးချင်ပါတယ်။