Introduction to Apache Airflow

Apache Airflow เบื้องต้นด้วย Python

Mike Metzger

Data Engineer

Workflow คืออะไร?

  • Workflow - ชุดของขั้นตอนสำหรับดำเนินกระบวนการด้านวิศวกรรมข้อมูล

 

  • ตัวอย่าง: ดาวน์โหลดไฟล์ คัดลอกข้อมูล กรองข้อมูล และบันทึกลงฐานข้อมูล

แผนภาพ Workflow แสดงขั้นตอนวิศวกรรมข้อมูลตั้งแต่การดาวน์โหลดไฟล์จนถึงการบันทึกลงฐานข้อมูล

Apache Airflow เบื้องต้นด้วย Python

Airflow คืออะไร?

Airflow - แพลตฟอร์มสำหรับจัดการ Workflow:

  • สร้าง
  • กำหนดตารางเวลา
  • ตรวจสอบ

 

โลโก้ Apache Airflow

   

ไอคอนแสดงการสร้าง กำหนดตารางเวลา และตรวจสอบ Workflow

Apache Airflow เบื้องต้นด้วย Python

Airflow คืออะไร?

  • รองรับโปรแกรมจากภาษาใดก็ได้ แต่เขียน Workflow ด้วย Python
  • จัดการ Workflow ในรูปแบบ Dag
  • เข้าถึงได้ผ่าน web interface, โค้ด, command-line หรือ REST API
  • ใช้สำหรับ ETL pipeline, ML workflow, automation และอื่น ๆ

 

โลโก้ Apache Airflow

Apache Airflow เบื้องต้นด้วย Python

แนะนำ Dag เบื้องต้น

Dag - โมเดลที่รวบรวมทุกสิ่งที่จำเป็นสำหรับการรัน Workflow

  • ประกอบด้วย task และ dependency ระหว่างกัน
  • สร้างพร้อมระบุรายละเอียด เช่น ชื่อ อีเมล และเจ้าของ

ตัวอย่าง Dag แสดง task ที่เชื่อมต่อกันด้วยลูกศรแสดง dependency

Apache Airflow เบื้องต้นด้วย Python

ส่วนประกอบของ Airflow

  • Scheduler - กระตุ้น Workflow ตามตารางเวลาและส่ง task
  • API Server - ให้การเข้าถึงแพลตฟอร์ม Airflow อย่างปลอดภัยและสม่ำเสมอ
  • Dag processor - อ่านโดย Scheduler เพื่อกำหนด task และเวลาที่จะรัน
  • Metadata database - จัดเก็บสถานะของ Dag และ task

แผนภาพส่วนประกอบของ Airflow: scheduler, API server, Dag processor และ metadata database

Apache Airflow เบื้องต้นด้วย Python

การรัน Workflow ใน Airflow UI

มุมมอง Airflow Dags แสดง Dag ที่โหลดแล้ว 2 รายการพร้อมตัวเลือกโต้ตอบ

Apache Airflow เบื้องต้นด้วย Python

การรัน Workflow ใน Airflow UI

มุมมอง Airflow Dags พร้อมไฮไลต์ปุ่ม trigger play

Apache Airflow เบื้องต้นด้วย Python

การรัน Workflow ใน Airflow UI

popup trigger Dag ของ Airflow แสดงตัวเลือกการรันและปุ่ม Trigger

Apache Airflow เบื้องต้นด้วย Python

การรัน Workflow ใน Airflow UI

มุมมอง Airflow Dags แสดงการรันล่าสุดที่สำเร็จพร้อมเครื่องหมายถูกสีเขียว

Apache Airflow เบื้องต้นด้วย Python

การรัน Workflow ใน Airflow UI

มุมมอง task ใน Airflow Dag run แสดงรายละเอียด task แต่ละรายการ เช่น generate_random_number

Apache Airflow เบื้องต้นด้วย Python

มาฝึกกันเถอะ!

Apache Airflow เบื้องต้นด้วย Python

Preparing Video For Download...