使用 @task.bash 定義 BashOperator
Bash 工作可讓你指定任意的 shell 指令或腳本,並將其加入 Airflow 工作流程。這通常是把 Airflow 導入你環境的好起點。
因此,你一直在交付資料給資料分析團隊同事之前,手動執行一些清理資料的腳本(使用名為 cleanup.sh 的腳本)。隨著被指派的這類工作越來越多,你發現要手動執行所有事情已經很難跟上,更別說處理錯誤或重試。你想把這個簡單腳本實作成一個 Airflow operator。
Airflow 的 dag 與 task 物件都已經匯入。
本練習屬於課程
Python 中的 Apache Airflow 入門
練習說明
- 使用
@task.bash裝飾器來定義工作。 - 方法名稱使用
cleanup_task。 - 讓此工作回傳
cleanup.sh。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
@dag(
dag_id='analytics_dag',
start_date=datetime(2026,1,1)
)
def analytics_dag():
# Specify a Bash task
@____
def ____():
return '____'
# Run the task
cleanup_task()
analytics_dag()