L'operatore HITL

Introduzione ad Apache Airflow in Python

Mike Metzger

Data Engineer

Human-In-The-Loop?

  • I flussi attuali girano in automatico, dall'inizio alla fine
  • Con le opzioni attuali gestiamo alcuni problemi (errori, notifiche, ecc.)
  • Non possiamo “ricontrollare” situazioni critiche o dettagli molto importanti
  • Gli operatori Human-In-The-Loop aggiungono interazione umana ai flussi in esecuzione

Foto di una persona che scrive codice al computer

Introduzione ad Apache Airflow in Python

Operatori diversi

  • HITL è una classe di operatori
  • Operatori diversi offrono interazioni diverse
  • 4 tipi di operatori HITL
Introduzione ad Apache Airflow in Python

Operatori HITL

  • HITLOperator: classe base per tutti gli operatori HITL. Mette il task in stato differito, liberando gli slot del worker mentre attende risposta.
  • HITLBranchOperator: per decisioni manuali che determinano quale percorso a valle deve seguire il Dag.
  • HITLEntryOperator: consente di fornire input strutturati tramite un TriggerForm, poi validati e salvati in XCom per i task successivi.
  • ApprovalOperator: operatore specializzato che mostra una scelta semplice "Approve" o "Reject".
Introduzione ad Apache Airflow in Python

ApprovalOperator

  • from airflow.providers.standard.operators.hitl import ApprovalOperator
  • Attributi:
    • subject - Oggetto/titolo dell'approvazione
    • body - Contenuto del messaggio
    • execution_timeout - timedelta di attesa per la risposta
    • defaults - Valore predefinito: approve o reject allo scadere
    • assigned_users - Elenco utenti a cui inviare il messaggio
Introduzione ad Apache Airflow in Python

Esempio di 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."
        ),
    )
Introduzione ad Apache Airflow in Python

ApprovalOperator nell'UI di Airflow

Nella vista del Dag run, appare RequiredActions se un task che richiede approvazione è in attesa.

Vista Dag run di Airflow che mostra un task con stato Approval required

Introduzione ad Apache Airflow in Python

ApprovalOperator - Home page

Home page di Airflow che mostra la sezione Required Actions

Introduzione ad Apache Airflow in Python

Messaggio di ApprovalOperator nell'UI di Airflow

Messaggio di approvazione nell'UI di Airflow con opzioni Approve e Reject

Introduzione ad Apache Airflow in Python

Ayo berlatih!

Introduzione ad Apache Airflow in Python

Preparing Video For Download...