2017-01-05 12 views
5

Chỉ bắt đầu với Luồng không khí và tự hỏi thực tiễn tốt nhất là gì để cấu trúc DAG lớn. Đối với ETL của chúng tôi, chúng tôi có rất nhiều nhiệm vụ thuộc các nhóm hợp lý, nhưng các nhóm phụ thuộc vào nhau. Điều nào sau đây sẽ được coi là phương pháp hay nhất?AIrflow - Tách định nghĩa DAG trên nhiều tệp

  • Một tập tin lớn DAG với tất cả các nhiệm vụ trong tập tin đó
  • Splitting định nghĩa DAG trên nhiều file (Làm thế nào để làm điều này?)
  • Xác định nhiều DAG, một cho từng nhóm nhiệm vụ, và thiết lập phụ thuộc giữa chúng bằng cách sử dụng ExternalTaskSensor

Cũng mở để đề xuất khác.

Trả lời

5

DAG chỉ là tệp python. Vì vậy, bạn có thể tách một định nghĩa dag đơn thành nhiều tệp. Các tệp khác nhau chỉ nên có các phương thức lấy một đối tượng dag và tạo các tác vụ bằng cách sử dụng đối tượng dag đó.

Lưu ý rằng, bạn chỉ nên là một đối tượng dag duy nhất trong phạm vi toàn cục. Luồng không khí chọn tất cả các đối tượng dag trong phạm vi toàn cục dưới dạng các dấu gạch ngang riêng biệt.

Nó thường được coi là thực hành tốt để giữ cho mỗi dag càng súc tích càng tốt. Tuy nhiên, nếu bạn cần thiết lập các phụ thuộc như vậy, bạn có thể cân nhắc việc sử dụng các thẻ phụ. Thông tin thêm về điều này tại đây: https://airflow.incubator.apache.org/concepts.html?highlight=subdag#scope

Bạn cũng có thể sử dụng ExternalTaskSensor nhưng hãy cẩn thận khi số lượng dấu gạch ngang tăng lên, có thể khó xử lý các phụ thuộc bên ngoài giữa các tác vụ. Tôi nghĩ rằng thẻ phụ có thể là cách để đi cho trường hợp sử dụng của bạn.

Các vấn đề liên quan