数据岗位面试题更新 2026-08-05

请说明在 Airflow 的调度流程中,Sensor 这一组件通常被用来监听哪些外部条件,以及它在任务依赖和触发逻辑中起什么作用?

数据技术原理Apache Airflow

考察说明

考查对 Airflow 中 Sensor 用途和工作机制的理解。

回答思路

  1. 【回答框架 1】Sensor 是 Airflow 中一种特殊类型的 Operator,用于等待外部条件满足,例如文件出现、数据库记录变更、API 可达等。它自身作为任务节点运行,并在满足条件后返回成功,从而允许下游任务继续执行。
  2. 【回答框架 2】Sensor 的状态转换包括 running、success、failed、skipped 等。其核心机制是通过内置的 poke 方法反复检查条件,直到条件满足或超过超时时间。配置参数包括 poke_interval(轮询间隔)和 timeout(超时时间)。
  3. 【回答框架 3】Sensor 常用于跨系统依赖场景,例如等待上游数据文件生成后再进行数据加载,或等待外部 API 变得可用。它可以在 DAG 中作为独立任务存在,也可以直接作为下游任务的前置依赖。
  4. 【回答框架 4】在使用 Sensor 时,需要注意合理设置超时和重试策略,避免无限等待或频繁轮询浪费资源。同时,可以通过模式匹配或自定义 Sensor 来精确监控特定条件。
  5. 【回答框架 5】此外,Airflow 还支持在 DAG 中设置最短等待时间,类似于最低时限机制,但 Sensor 的定位更偏向于条件感知,而非简单的时间延迟。
  6. 【关键点 1】Sensor 是等待外部条件的特殊 Operator,主要基于轮询机制。
  7. 【关键点 2】条件满足后 Sensor 返回成功,下游任务继续执行;超时或失败会导致任务失败。
  8. 【关键点 3】可通过 poke_interval 和 timeout 控制轮询频率与等待上限。
  9. 【关键点 4】合理设计超时和重试机制以避免无谓的资源占用。
  10. 【关键点 5】Sensor 适用于跨系统依赖,如等待文件或外部服务就绪。
  11. 【易错点 1】将 Sensor 用于等待固定时长而非外部条件,容易造成误用或过度复杂化。
  12. 【易错点 2】未设置合理的 timeout 可能导致任务无限期挂起。
  13. 【易错点 3】轮询间隔过短会带来不必要的开销,过长则可能延迟任务调度。