zalo-icon
facebook-icon
phone-icon
TechData.AI Logo
Airflow™ là gì? – TechData.AI

Apache Airflow™ là một nền tảng mã nguồn mở để phát triển, lên lịch và giám sát quy trình làm việc theo lô. Khung Python có thể mở rộng của Airflow cho phép bạn xây dựng quy trình công việc kết nối với hầu hết mọi công nghệ. Giao diện web giúp quản lý trạng thái quy trình làm việc của bạn. Luồng không khí có thể triển khai theo nhiều cách, thay đổi từ một quy trình đơn lẻ trên máy tính xách tay của bạn sang thiết lập phân tán để hỗ trợ ngay cả những quy trình công việc lớn nhất.

Quy trình làm việc dưới dạng mã

Đặc điểm chính của luồng công việc Airflow là tất cả các luồng công việc được xác định bằng mã Python. “Quy trình làm việc dưới dạng mã” phục vụ một số mục đích:

  • Năng động: Đường ống Airflow được định cấu hình dưới dạng mã Python, cho phép tạo đường ống động.
  • Mở rộng: Khung Airflow™ chứa các nhà khai thác để kết nối với nhiều công nghệ. Tất cả các thành phần Airflow đều có thể mở rộng để dễ dàng điều chỉnh theo môi trường của bạn.
  • Linh hoạt: Tham số hóa quy trình làm việc được tích hợp tận dụng công cụ tạo khuôn mẫu Jinja.

Hãy xem đoạn mã sau:

from datetime import datetime

from airflow import DAG
from airflow.decorators import task
from airflow.operators.bash import BashOperator

# A DAG represents a workflow, a collection of tasks
with DAG(dag_id="demo", start_date=datetime(2022, 1, 1), schedule="0 0 * * *") as dag:

    # Tasks are represented as operators
    hello = BashOperator(task_id="hello", bash_command="echo hello")

    @task()
    def airflow():
        print("airflow")

    # Set dependencies between tasks
    hello >> airflow()

Ở đây bạn thấy:

  • Một DAG có tên là “demo”, bắt đầu từ ngày 1 tháng 1 năm 2022 và chạy mỗi ngày một lần. DAG là biểu diễn luồng công việc của Airflow.
  • Hai tác vụ, một BashOperator chạy tập lệnh Bash và một hàm Python được xác định bằng trình trang trí @task
  • >> giữa các tác vụ xác định một phụ thuộc và kiểm soát thứ tự các tác vụ sẽ được thực thi

Luồng không khí đánh giá tập lệnh này và thực hiện các tác vụ ở khoảng thời gian đã đặt và theo thứ tự đã xác định. Trạng thái của DAG “demo” hiển thị trong giao diện web:

Demo DAG in the Graph View, showing the status of one DAG run

Ví dụ này minh họa một tập lệnh Bash và Python đơn giản, nhưng các tác vụ này có thể chạy bất kỳ mã tùy ý nào. Hãy nghĩ đến việc chạy một công việc Spark, di chuyển dữ liệu giữa hai nhóm hoặc gửi email. Cấu trúc tương tự cũng có thể được nhìn thấy chạy theo thời gian:

Demo DAG in the Grid View, showing the status of all DAG runs

Mỗi cột đại diện cho một lần chạy DAG. Đây là hai trong số các dạng xem được sử dụng nhiều nhất trong Airflow, nhưng có một số dạng xem khác cho phép bạn đi sâu vào trạng thái quy trình làm việc của mình.

Tại sao sử dụng Airflow™?

Airflow™ là một nền tảng điều phối quy trình công việc hàng loạt. Khung Airflow chứa các toán tử để kết nối với nhiều công nghệ và có thể dễ dàng mở rộng để kết nối với một công nghệ mới. Nếu quy trình công việc của bạn có điểm bắt đầu và kết thúc rõ ràng và chạy đều đặn, thì chúng có thể được lập trình dưới dạng DAG luồng khí.


Nếu bạn thích viết mã hơn là nhấp chuột, thì Airflow là công cụ dành cho bạn. Quy trình công việc được định nghĩa là mã Python có nghĩa là:

  • Quy trình công việc có thể được lưu trữ trong kiểm soát phiên bản để bạn có thể quay lại các phiên bản trước
  • Quy trình làm việc có thể được phát triển bởi nhiều người cùng một lúc
  • Các bài kiểm tra có thể được viết để xác nhận chức năng
  • Các thành phần có thể mở rộng và bạn có thể xây dựng trên một bộ sưu tập lớn các thành phần hiện có

Ngữ nghĩa thực thi và lập lịch biểu phong phú cho phép bạn dễ dàng xác định các quy trình phức tạp, chạy theo các khoảng thời gian đều đặn. Chèn lấp cho phép bạn (chạy lại) các đường ống dẫn trên dữ liệu lịch sử sau khi thực hiện các thay đổi đối với logic của bạn. Và khả năng chạy lại một phần đường ống sau khi giải quyết lỗi giúp tối đa hóa hiệu quả.

Giao diện người dùng của Airflow cung cấp:

Quan điểm sâu sắc về hai điều:

  • đường ống
  • nhiệm vụ

Tổng quan về quy trình của bạn theo thời gian

Từ giao diện, bạn có thể kiểm tra nhật ký và quản lý các tác vụ, chẳng hạn như thử lại một tác vụ trong trường hợp không thành công.

Bản chất mã nguồn mở của Airflow đảm bảo bạn làm việc trên các thành phần được nhiều công ty khác trên thế giới phát triển, thử nghiệm và sử dụng. Trong cộng đồng tích cực, bạn có thể tìm thấy nhiều tài nguyên hữu ích dưới dạng các bài đăng trên blog, bài báo, hội nghị, sách, v.v. Bạn có thể kết nối với các đồng nghiệp khác thông qua một số kênh như Slack và danh sách gửi thư.

Airflow dưới dạng Nền tảng có khả năng tùy biến cao. Bằng cách sử dụng Giao diện chung của Luồng khí, bạn có thể mở rộng và tùy chỉnh hầu hết mọi khía cạnh của Luồng khí.

Tại sao sử dụng Airflow™?

Airflow™ được xây dựng cho quy trình làm việc theo lô hữu hạn. Mặc dù API CLI và REST cho phép kích hoạt quy trình công việc, nhưng Luồng không khí không được xây dựng để chạy vô hạn quy trình công việc dựa trên sự kiện. Luồng không khí không phải là một giải pháp phát trực tuyến. Tuy nhiên, một hệ thống phát trực tuyến như Apache Kafka thường được thấy hoạt động cùng với Apache Airflow. Kafka có thể được sử dụng để nhập và xử lý trong thời gian thực, dữ liệu sự kiện được ghi vào một vị trí lưu trữ và Airflow định kỳ bắt đầu quy trình làm việc xử lý một lô dữ liệu.

Nếu bạn thích nhấp hơn mã hóa, thì Airflow có lẽ không phải là giải pháp phù hợp. Giao diện web nhằm mục đích làm cho việc quản lý quy trình công việc trở nên dễ dàng nhất có thể và khung Airflow liên tục được cải thiện để giúp trải nghiệm của nhà phát triển trở nên mượt mà nhất có thể. Tuy nhiên, triết lý của Luồng không khí là xác định quy trình công việc dưới dạng mã nên mã hóa sẽ luôn được yêu cầu.

Tham khảo lộ trình khoá Data Engineer tại TechData.AI

Chi tiết: TechData.AI - Data Engineer Course

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to Top