HITL 运算符

Python 中的 Apache Airflow 入门

Mike Metzger

Data Engineer

什么是人‑在‑回路?

  • 我们当前的工作流全程自动运行
  • 现有选项可处理部分问题(失败、通知等)
  • 无法对可疑情况或关键细节进行复核
  • 人在回路(HITL)运算符可为运行中的工作流加入人工交互

一位在电脑前写代码的人的照片

Python 中的 Apache Airflow 入门

不同的运算符

  • HITL 是一类运算符
  • 不同运算符提供不同交互
  • HITL 运算符有 4 种类型
Python 中的 Apache Airflow 入门

HITL 运算符

  • HITLOperator:所有 HITL 运算符的基类。将任务置为延迟状态,等待响应时释放工作槽位。
  • HITLBranchOperator:用于人工决策,决定 Dag 的下游路径。
  • HITLEntryOperator:通过 TriggerForm 接收结构化输入,校验后存入 XCom,供后续任务使用。
  • ApprovalOperator:提供简单的"批准"或"拒绝"选择。
Python 中的 Apache Airflow 入门

ApprovalOperator

  • from airflow.providers.standard.operators.hitl import ApprovalOperator
  • 属性:
    • subject - 审批主题/标题
    • body - 消息内容
    • execution_timeout - 等待响应的 timedelta
    • defaults - 超时时默认批准拒绝
    • 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 运行视图中,如有等待审批的任务,会出现"需要操作"视图。

Airflow Dag 运行视图,显示需审批的任务

Python 中的 Apache Airflow 入门

ApprovalOperator 首页

Airflow 首页,显示"需要操作"部分

Python 中的 Apache Airflow 入门

Airflow 界面中的 ApprovalOperator 消息

Airflow 界面中的审批消息,包含"批准"和"拒绝"选项

Python 中的 Apache Airflow 入门

Vamos praticar!

Python 中的 Apache Airflow 入门

Preparing Video For Download...