Operator HITL

Wprowadzenie do Apache Airflow w Pythonie

Mike Metzger

Data Engineer

Human-In-The-Loop?

  • Wszystkie nasze przepływy pracy działają automatycznie, od początku do końca
  • Niektóre problemy (błędy, powiadomienia itp.) możemy obsługiwać dostępnymi opcjami
  • Brak możliwości „podwójnej weryfikacji" wątpliwych sytuacji lub ważnych szczegółów
  • Operatory Human-In-The-Loop umożliwiają dodanie interakcji człowieka do działających przepływów

Zdjęcie osoby piszącej kod przy komputerze

Wprowadzenie do Apache Airflow w Pythonie

Różne operatory

  • HITL to klasa operatorów
  • Różne operatory zapewniają różne typy interakcji
  • 4 typy operatorów HITL
Wprowadzenie do Apache Airflow w Pythonie

Operatory HITL

  • HITLOperator: Klasa bazowa wszystkich operatorów HITL. Wprowadza zadanie w stan odroczony, zwalniając sloty robocze podczas oczekiwania na odpowiedź.
  • HITLBranchOperator: Służy do ręcznego podejmowania decyzji określających, którą ścieżką downstream podąży DAG.
  • HITLEntryOperator: Umożliwia użytkownikom dostarczanie strukturyzowanych danych wejściowych za pomocą TriggerForm – dane są walidowane i przechowywane w XCom dla kolejnych zadań.
  • ApprovalOperator: Wyspecjalizowany operator prezentujący użytkownikowi prosty wybór: „Zatwierdź" lub „Odrzuć".
Wprowadzenie do Apache Airflow w Pythonie

ApprovalOperator

  • from airflow.providers.standard.operators.hitl import ApprovalOperator
  • Atrybuty:
    • subject – temat/tytuł zatwierdzenia
    • body – treść wiadomości
    • execution_timeout – timedelta określający czas oczekiwania na odpowiedź
    • defaults – domyślne działanie (zatwierdź lub odrzuć) po przekroczeniu limitu czasu
    • assigned_users – lista użytkowników, do których wysyłana jest wiadomość
Wprowadzenie do Apache Airflow w Pythonie

Przykład 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."
        ),
    )
Wprowadzenie do Apache Airflow w Pythonie

ApprovalOperator w interfejsie Airflow

W widoku uruchomienia DAG pojawia się sekcja RequiredActions, gdy zadanie oczekuje na zatwierdzenie.

Widok uruchomienia DAG w Airflow z zadaniem w statusie wymagającym zatwierdzenia

Wprowadzenie do Apache Airflow w Pythonie

ApprovalOperator – strona główna

Strona główna Airflow z sekcją Required Actions

Wprowadzenie do Apache Airflow w Pythonie

Komunikat ApprovalOperator w interfejsie Airflow

Komunikat zatwierdzenia w interfejsie Airflow z opcjami Approve i Reject

Wprowadzenie do Apache Airflow w Pythonie

Czas na ćwiczenia!

Wprowadzenie do Apache Airflow w Pythonie

Preparing Video For Download...