การกำหนด BashOperator ด้วย @task.bash
Bash task ช่วยให้สามารถระบุคำสั่ง shell หรือสคริปต์ใดก็ได้ แล้วนำมาเพิ่มในเวิร์กโฟลว์ของ Airflow ได้เลย ถือเป็นจุดเริ่มต้นที่ดีในการนำ Airflow มาใช้งานในสภาพแวดล้อมของคุณ
ที่ผ่านมา คุณรันสคริปต์ทำความสะอาดข้อมูล (โดยใช้สคริปต์ชื่อ cleanup.sh) ด้วยตัวเองก่อนส่งข้อมูลให้ทีม Data Analytics พอมีงานเพิ่มขึ้นเรื่อย ๆ จึงเริ่มตามงานแทบไม่ทัน ยิ่งต้องจัดการกับข้อผิดพลาดและการรันซ้ำด้วยมือแล้ว ยิ่งยุ่งยากขึ้นไปอีก ดังนั้นจึงอยากนำสคริปต์นี้มาใช้งานเป็น Airflow operator
ออบเจ็กต์ dag และ task ของ Airflow ถูก import มาให้เรียบร้อยแล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Apache Airflow เบื้องต้นด้วย Python
คำแนะนำการฝึกหัด
- ใช้ decorator
@task.bashเพื่อกำหนด task - ตั้งชื่อเมธอดว่า
cleanup_task - ให้ 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()