HITL Operator

Python 中的 Apache Airflow 入門

Mike Metzger

Data Engineer

Human-In-The-Loop?

  • 目前所有工作流程皆自動執行,從開始到結束
  • 以現有選項可處理部分情況(失敗、通知等)
  • 無法「複查」可疑情況或關鍵細節
  • Human-In-The-Loop operator 可在執行中的流程加入人工互動

一位在電腦前撰寫程式碼的人

Python 中的 Apache Airflow 入門

不同的 operator

  • HITL 是一類 operator
  • 不同 operator 提供不同互動方式
  • 共有 4 種 HITL operator
Python 中的 Apache Airflow 入門

HITL Operators

  • HITLOperator:所有 HITL operator 的基底類別。它將任務設為延後狀態,等待回覆時釋放 worker 插槽。
  • HITLBranchOperator:用於人工決策,決定 Dag 應走哪個下游任務路徑。
  • HITLEntryOperator:讓使用者透過 TriggerForm 提供結構化輸入,經驗證後存入 XCom,供後續任務使用。
  • ApprovalOperator:提供簡單的「Approve」或「Reject」選項給使用者的特殊 operator。
Python 中的 Apache Airflow 入門

ApprovalOperator

  • from airflow.providers.standard.operators.hitl import ApprovalOperator
  • 屬性:
    • subject - 核准請求的主旨/標題
    • body - 訊息內容
    • execution_timeout - 等待回覆的 timedelta
    • defaults - 逾時時預設為 approvereject
    • assigned_users - 要傳送訊息的使用者清單
Python 中的 Apache Airflow 入門

ApprovalOperator 範例

approve_gate = ApprovalOperator(
        task_id="approve_data_import",
        subject="Data import - Approval Required",
        body=(
            "Please review the data produced by the *extract_info* task."
            "Approve to write data to the database, or Reject to halt the run."
        ),
    )
Python 中的 Apache Airflow 入門

Airflow 介面的 ApprovalOperator

在 Dag 執行檢視中,若有等待核准的任務,會出現 RequiredActions 檢視。

Airflow Dag 執行畫面,顯示需核准的任務狀態

Python 中的 Apache Airflow 入門

ApprovalOperator 首頁畫面

Airflow 首頁顯示 Required Actions 區塊

Python 中的 Apache Airflow 入門

Airflow 介面中的 ApprovalOperator 訊息

Airflow 介面的核准訊息,含 Approve 與 Reject 選項

Python 中的 Apache Airflow 入門

一起來練習吧!

Python 中的 Apache Airflow 入門

Preparing Video For Download...