Airflow Dag

Giới thiệu về Apache Airflow bằng Python

Mike Metzger

Data Engineer

Dag là gì?

Dag, hay Directed Acyclic Graph:

  • Directed - luồng giữa các thành phần biểu thị phụ thuộc
  • Acyclic - không lặp hay tạo vòng
  • Graph - tập các thành phần

Đồ thị có hướng không chu trình với các nút nối bằng mũi tên một chiều, không có vòng lặp

Giới thiệu về Apache Airflow bằng Python

Dag trong Airflow

  • Viết bằng Python (có thể dùng thành phần từ ngôn ngữ khác)
  • Gồm các Task cần chạy, như operator hoặc sensor
  • Có phụ thuộc được định nghĩa tường minh hoặc ngầm định
    • ví dụ: Sao chép tệp lên server trước khi import vào dịch vụ cơ sở dữ liệu.

  Airflow Dag các task được nối thể hiện thứ tự phụ thuộc

Giới thiệu về Apache Airflow bằng Python

Định nghĩa một Dag

Ví dụ Dag (Taskflow API):

from airflow.sdk import dag

from pendulum import datetime @dag( dag_id='etl_workflow', email='[email protected]', start_date=datetime(2026, 3, 15, tz="UTC") )
def etl_workflow(): ...
etl_workflow()
Giới thiệu về Apache Airflow bằng Python

Dags trên dòng lệnh

 

  • Dòng lệnh airflow có nhiều lệnh con
  • airflow -h - trợ giúp và mô tả lệnh con

 

  • Lệnh con cho Dag

    • airflow dags list - liệt kê mọi Dag đã nhận diện
    • airflow dags reserialize - buộc Airflow nạp lại tệp Dag
    • airflow tasks test - chạy một task cụ thể
Giới thiệu về Apache Airflow bằng Python

Dòng lệnh vs Python

Dùng công cụ dòng lệnh để:

  • Khởi động các tiến trình Airflow
  • Chạy thủ công Dag / Task
  • Lấy thông tin log từ Airflow

Terminal chạy công cụ dòng lệnh airflow

Dùng Python để:

  • Tạo một Dag
  • Sửa thuộc tính của từng Dag

Minh họa biểu diễn mã Python

Giới thiệu về Apache Airflow bằng Python

Laten we oefenen!

Giới thiệu về Apache Airflow bằng Python

Preparing Video For Download...