Оператор HITL

Вступ до Apache Airflow на Python

Mike Metzger

Data Engineer

Human-In-The-Loop?

  • Усі наші поточні робочі процеси виконуються автоматично від початку до кінця
  • Деякі проблеми (збої, сповіщення тощо) ми вже можемо обробляти наявними опціями
  • Неможливо «переперевірити» сумнівні ситуації чи критично важливі деталі
  • Оператори Human-In-The-Loop дають змогу додати взаємодію людини до запущених процесів

Фото людини, яка пише код за комп'ютером

Вступ до Apache Airflow на Python

Різні оператори

  • HITL — це клас операторів
  • Різні оператори забезпечують різні типи взаємодії
  • 4 типи операторів HITL
Вступ до Apache Airflow на Python

Оператори HITL

  • HITLOperator: базовий клас для всіх операторів HITL. Переводить завдання в відкладений стан і звільняє слоти воркерів, очікуючи на відповідь.
  • HITLBranchOperator: для ручного вибору шляху виконання — визначає, якою гілкою вниз за потоком піде Dag.
  • HITLEntryOperator: дає змогу користувачам надати структуроване введення через TriggerForm; його валідовано й збережено в XCom для наступних завдань.
  • ApprovalOperator: спеціалізований оператор, що пропонує простий вибір «Approve» або «Reject» користувачу.
Вступ до Apache Airflow на Python

ApprovalOperator

  • from airflow.providers.standard.operators.hitl import ApprovalOperator
  • Атрибути:
    • subject — тема / заголовок запиту на схвалення
    • body — вміст повідомлення
    • execution_timeout — timedelta, як довго чекати на відповідь
    • defaults — що вибрати за замовчуванням (approve чи reject) у разі тайм-ауту
    • assigned_users — список користувачів, яким надіслати повідомлення
Вступ до Apache Airflow на Python

Приклад 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."
        ),
    )
Вступ до Apache Airflow на Python

ApprovalOperator в інтерфейсі Airflow

У поданні запуску Dag з'являється RequiredActions, якщо завдання очікує Approval.

Подання запуску Airflow Dag із завданням у статусі Approval required

Вступ до Apache Airflow на Python

Головна сторінка ApprovalOperator

Домашня сторінка Airflow з розділом Required Actions

Вступ до Apache Airflow на Python

Повідомлення ApprovalOperator в UI Airflow

Повідомлення про схвалення в UI Airflow з опціями Approve і Reject

Вступ до Apache Airflow на Python

Давайте потренуємось!

Вступ до Apache Airflow на Python

Preparing Video For Download...