Airflow для менеджеров
В Ariflow 3.1 появилась группа hitl-операторов, которая позволяет что-то вводить пользаку во время работы дага
HITL = Human-in-the-loop
🫠 Что делает пример на картинках?
Мы задаем даты, выбираем сервисы из списка, вводим почту и получаем отчет. Операторы по сути помогают менеджерам не дергать DA/DE своими адхоками, а пойти самому накликать и выгрузить то, что нужно
🤓 А как это происходит?
В базовых примерах после разворачивания airflow появится даг example_hitl_operator. Там есть несколько операторов из пакета airflow.providers.standard.operators.hitl:
🤩HITLOperator — выбрать одну или несколько опций из списка 🤩HITLEntryOperator — ввести любой текст 🤩HITLBranchOperator — выбрать следующую таску 🤩ApprovalOperator — одобрить или отклонить
В коде выглядит это вот так:
wait_for_multiple_options = HITLOperator( task_id="wait_for_multiple_options", subject="Please choose option to proceed: ", options=["option 1", "option 2", "option 3"], multiple=True, defaults=["option 1"], )
Когда заходите в UI, после запуска дага появляется доп вкладка Required Actions (1), где и нужно прожать опцию. Это все потом отправляется в xcom:
{ "params_input": {}, "responded_at": "datetime.datetime@version=2(tz=(UTC,pendulum.tz.timezone.Timezone,1,True),timestamp=1778505898.269782)", "chosen_options": [ "option 2", "option 3" ], "responded_by_user": { "id": "1", "name": "airflow" } }
Из xcom потом можно достать в других тасках. Сначала обращаетесь по названию таски, а потом работаете, как с обычным словарем:
{{ ti.xcom_pull(task_ids='wait_for_multiple_options')["chosen_options"] }}
{{ ti.xcom_pull(task_ids='wait_for_input')["params_input"]["information"] }}
Use case очень прикольный. Интересно, а вот на практике этим будут пользоваться?
@data_engineerette
· 14.05
Интересно, как это повлияет на взаимодействие между менеджерами и инженерами данных. Если HITL действительно упростит процесс, можно ожидать, что менеджеры будут реже тратить время на адхоки. Но всё же, насколько часто они будут заходить в интерфейс и использовать эти возможности? Вопрос в том, как встроить это в их привычный рабочий процесс.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён