The HITL Operator

Introduktion till Apache Airflow i Python

Mike Metzger

Data Engineer

Human-In-The-Loop?

  • Alla våra nuvarande arbetsflöden körs automatiskt, från start till slut
  • Vi kan hantera vissa problem (fel, notifieringar m.m.) med befintliga alternativ
  • Det går inte att "dubbelkolla" oroväckande situationer eller viktig information
  • Human-In-The-Loop-operatorer låter oss lägga till mänsklig interaktion i arbetsflöden

Foto av en person som skriver kod vid en dator

Introduktion till Apache Airflow i Python

Olika operatorer

  • HITL är en klass av operatorer
  • Olika operatorer ger olika typer av interaktion
  • 4 typer av HITL-operatorer
Introduktion till Apache Airflow i Python

HITL-operatorer

  • HITLOperator: Basklass för alla HITL-operatorer. Sätter uppgiften i ett uppskjutet tillstånd och frigör arbetsplatser medan den väntar på svar.
  • HITLBranchOperator: Används för manuellt beslutsfattande som avgör vilken nedströmsväg DAG:en ska följa.
  • HITLEntryOperator: Låter användare ange strukturerad indata via ett TriggerForm, som valideras och lagras i XCom för efterföljande uppgifter.
  • ApprovalOperator: En specialiserad operator som ger användaren ett enkelt val: "Godkänn" eller "Avvisa".
Introduktion till Apache Airflow i Python

ApprovalOperator

  • from airflow.providers.standard.operators.hitl import ApprovalOperator
  • Attribut:
    • subject – Ämne/titel för godkännandet
    • body – Meddelandets innehåll
    • execution_timeout – timedelta för hur länge operatorn väntar på svar
    • defaults – Anger om standardvalet vid timeout är approve eller reject
    • assigned_users – Lista över användare som meddelandet skickas till
Introduktion till Apache Airflow i Python

Exempel på 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."
        ),
    )
Introduktion till Apache Airflow i Python

ApprovalOperator i Airflow UI

I DAG-körningsvyn visas en RequiredActions-vy när en uppgift som kräver godkännande väntar.

Airflow DAG-körningsvy som visar en uppgift med statusen Approval required

Introduktion till Apache Airflow i Python

ApprovalOperator – startsida

Airflow-startsida med sektionen Required Actions

Introduktion till Apache Airflow i Python

ApprovalOperator-meddelande i Airflow UI

Airflow UI-godkännandemeddelande med alternativen Approve och Reject

Introduktion till Apache Airflow i Python

Nu kör vi en övning!

Introduktion till Apache Airflow i Python

Preparing Video For Download...