Оператор 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, если задача ожидает согласования.

Представление запуска DAG в Airflow с задачей в статусе «требуется согласование»

Введение в Apache Airflow на Python

Главная страница с ApprovalOperator

Главная страница Airflow с разделом Required Actions

Введение в Apache Airflow на Python

Сообщение ApprovalOperator в интерфейсе Airflow

Сообщение о согласовании в интерфейсе Airflow с кнопками Approve и Reject

Введение в Apache Airflow на Python

Давайте потренируемся!

Введение в Apache Airflow на Python

Preparing Video For Download...