DEV Community

Cover image for Apache Airflow
Chi Cong, Nguyen
Chi Cong, Nguyen

Posted on

Apache Airflow

I. Kiến trúc của Airflow

Basic architecture

1. Các component chính:

  • Scheduler: Trái tim của Airflow, chịu trách nhiệm lên lịch và thực thi các DAGs. Nó liên tục kiểm tra các DAGs và xác định các tasks cần thực thi dựa trên các dependencies và thời gian lên lịch.
  • Executor: Chịu trách nhiệm thực thi các tasks. Airflow cung cấp nhiều loại executors như LocalExecutor (thực thi tasks trên máy chủ Airflow), CeleryExecutor (thực thi tasks trên các worker riêng biệt), KubernetesExecutor (thực thi tasks trên cluster Kubernetes), v.v.
  • Webserver: Cung cấp giao diện web để quản lý, theo dõi và debug các DAGs.
  • Metadata Database: Lưu trữ thông tin về các DAGs, tasks, logs, v.v. Airflow hỗ trợ nhiều loại database như PostgreSQL, MySQL, SQLite.
  • DAGs (Directed Acyclic Graphs): Đại diện cho các luồng công việc trong Airflow. Mỗi DAG bao gồm một tập hợp các tasks được kết nối với nhau theo thứ tự thực thi. Tasks: Các đơn vị công việc nhỏ nhất trong Airflow. Mỗi task đại diện cho một tác vụ cụ thể, ví dụ như chạy một script Python, gửi email, v.v.
  • Operators: Các lớp Python được sử dụng để định nghĩa các tasks trong DAGs. Airflow cung cấp nhiều loại operators cho các tác vụ phổ biến như BashOperator, PythonOperator, EmailOperator, v.v.

2. Deploying Airflow components

  • Trên Single machine chỉ gồm components scheduler và webserver
  • Trên Distributed environment - các components sẽ chạy trên các machines khác nhau (điều này cũng góp phần tăng tính bảo mật)

Distributed architecture

II. Cơ chế hoạt động

  • Scheduler (Lên lịch): liên tục kiểm tra các DAGs và xác định các tasks cần thực thi dựa trên các dependencies và thời gian lên lịch.
  • Executor (Thực thi): nhận các tasks từ Scheduler và thực thi chúng trên các worker.
  • Monitoring (Theo dõi): Airflow theo dõi tiến trình của các tasks và ghi lại thông tin vào Metadata Database.
  • Error Handling (Xử lý lỗi): Airflow xử lý các lỗi xảy ra trong quá trình thực thi tasks và có thể retry, skip hoặc fail các tasks dựa trên cấu hình.

References:
https://airflow.apache.org/docs/apache-airflow/stable/core-concepts/overview.html#architecture-diagrams

Top comments (0)