Вопрос проверяет понимание того, как Airflow ожидает внешние события и синхронизирует выполнение задач.
Сенсоры в Airflow — это специальные операторы, которые ждут наступления определённого условия. Они могут ожидать файл, запись в базе данных или завершение внешней задачи. Сенсор периодически проверяет условие до тех пор, пока оно не выполнится или не истечёт таймаут. После этого DAG продолжает выполнение. Сенсоры часто используются для синхронизации пайплайнов.
Во многих workflow важно не просто запустить задачу по расписанию, а дождаться, когда внешний ресурс станет доступен. Именно для этого в Airflow существуют сенсоры.
Sensor — это оператор Airflow, который блокирует выполнение DAG до выполнения заданного условия.
Сенсоры:
регулярно проверяют состояние внешнего ресурса;
«спят» между проверками;
завершаются успешно, когда условие выполнено.
Типовые условия:
файл появился в S3;
строка появилась в таблице;
другой DAG завершился.
Airflow предоставляет много готовых сенсоров:
FileSensor;
ExternalTaskSensor;
S3KeySensor;
SqlSensor.
Каждый из них инкапсулирует логику проверки.
Важно помнить:
сенсор ничего не обрабатывает;
он только ждёт;
бизнес-логика должна быть в других задачах.
Это частая ошибка начинающих.
Сенсоры могут работать:
в режиме активного ожидания;
в асинхронном (deferrable) режиме.
Выбор режима влияет на использование ресурсов.
Сенсоры позволяют Airflow синхронизироваться с внешним миром и управлять зависимостями между системами. Их нужно использовать осознанно, так как они могут сильно влиять на ресурсы.