L'opérateur HITL

Introduction à Apache Airflow en Python

Mike Metzger

Data Engineer

Human-In-The-Loop ?

  • Tous nos flux de travail actuels s'exécutent automatiquement, de bout en bout
  • Nous gérons certains problèmes (échecs, avis, etc.) avec nos options actuelles
  • Impossible de « vérifier » les situations préoccupantes ou les détails critiques
  • Les opérateurs Human-In-The-Loop ajoutent une interaction humaine aux flux en cours

Photo d'une personne qui écrit du code à l'ordinateur

Introduction à Apache Airflow en Python

Différents opérateurs

  • HITL est une classe d'opérateur
  • Différents opérateurs offrent différentes interactions
  • 4 types d'opérateurs HITL
Introduction à Apache Airflow en Python

Opérateurs HITL

  • HITLOperator : La classe de base de tous les opérateurs HITL. Elle met la tâche en attente différée et libère les créneaux de travail en attendant une réponse.
  • HITLBranchOperator : Pour une décision manuelle qui détermine le chemin de tâches aval que le Dag doit suivre.
  • HITLEntryOperator : Permet de fournir une entrée structurée via un TriggerForm, ensuite validée et stockée dans XCom pour les tâches suivantes.
  • ApprovalOperator : Un opérateur spécialisé qui présente un simple choix « Approuver » ou « Refuser ».
Introduction à Apache Airflow en Python

ApprovalOperator

  • from airflow.providers.standard.operators.hitl import ApprovalOperator
  • Attributs :
    • subject - Sujet / titre de l'approbation
    • body - Contenu du message
    • execution_timeout - timedelta d'attente de la réponse
    • defaults - Valeur par défaut (approve ou reject) en cas d'échéance
    • assigned_users - Liste d'utilisateurs à qui envoyer le message
Introduction à Apache Airflow en Python

Exemple : 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."
        ),
    )
Introduction à Apache Airflow en Python

ApprovalOperator dans l'interface Airflow

Dans la vue d'exécution du Dag, une vue RequiredActions s'affiche si une tâche en attente d'approbation attend.

Vue d'exécution d'un Dag Airflow montrant une tâche avec l'état Approval required

Introduction à Apache Airflow en Python

Page d'accueil : ApprovalOperator

Page d'accueil d'Airflow affichant la section Required Actions

Introduction à Apache Airflow en Python

Message d'ApprovalOperator dans l'interface Airflow

Message d'approbation dans l'interface Airflow avec les options Approve et Reject

Introduction à Apache Airflow en Python

Passons à la pratique !

Introduction à Apache Airflow en Python

Preparing Video For Download...