Apache Airflow

Apache Airflow

Nền tảng điều phối (orchestration) workflow bằng code Python — lập lịch, theo dõi và tự động retry các pipeline ETL. Định nghĩa luồng công việc dưới dạng DAG, để Airflow lo phần chạy đúng thứ tự, đúng giờ và báo lỗi khi hỏng.

4
Bài học
Python
Định nghĩa DAG
Scheduler
Lập lịch
Docker
Lab
Lộ trình 4 bài
Bài 1
Tổng quan & Kiến trúc
Airflow là gì, dùng để làm gì. Khái niệm DAG, Task, Operator, DAG Run, schedule_interval, catchup, backfill. Các thành phần Scheduler, Webserver, Worker, Executor, Metadata DB và các loại Executor.
DAGSchedulerExecutor
Bài 2
DAG đầu tiên
Cấu trúc một file DAG, viết DAG kiểu cổ điển với BashOperator + PythonOperator, default_args, schedule, start_date, catchup, toán tử phụ thuộc >>. Giới thiệu TaskFlow API của Airflow 2 với @dag/@task.
DAGTaskFlowschedule
Bài 3
Operators & Sensors
Operators phổ biến và provider operators, Sensors chờ điều kiện (mode poke vs reschedule), XCom truyền dữ liệu giữa task, Hooks & Connections, Variables, và branching với BranchPythonOperator.
OperatorSensorXComHook
Bài 4
Lab Docker
Chạy Airflow bằng Docker Compose chính thức: tải compose, tạo dags/logs/plugins + .env, airflow-init, mở UI 8080. Đặt một DAG ETL mẫu vào dags/ và áp dụng best practices.
DockerComposeETL
3 ý cốt lõi phải nhớ
DAG là code Python
Workflow được định nghĩa bằng Python thuần, nên versionable bằng Git, review được, test được và tái dùng được — khác hẳn cron rời rạc hay UI kéo thả.
Task phải idempotent & atomic
Mỗi task chạy lại nhiều lần phải cho cùng kết quả (idempotent) và chỉ làm đúng một việc gọn (atomic). Nhờ vậy retry và backfill mới an toàn.
Airflow chỉ điều phối
Airflow điều phối chứ không xử lý data nặng. Đẩy phần tính toán lớn sang Spark/SQL/warehouse; task Airflow chỉ kích hoạt và theo dõi.