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

请解释 Airflow 中的 SLA 概念,并说明如何在 DAG 中实现 SLA?

数据技术原理问题排查Apache Airflow

考察说明

考查对 Airflow SLA 机制的理解及实现方法。

回答思路

  1. 【回答框架 1】SLA 在 Airflow 中指任务或 DAG 的预期完成时间(如任务开始后 N 分钟内必须成功)。其核心是监控与告警,而非强制超时中止任务。
  2. 【回答框架 2】在 DAG 中可通过 default_args 设置 sla(时间差),如 timedelta(minutes=30),作用于所有任务或单独在任务中指定。
  3. 【回答框架 3】启用 SLA 后,Airflow 调度器会在每个调度周期检查任务是否在 SLA 内完成,若超时则触发邮件告警(需配置 smtp 和 sla_miss_callback)。
  4. 【回答框架 4】检查机制通过 SlaMiss 记录未达成的任务,可在 UI 或日志中查看;也可自定义 callback 函数。
  5. 【回答框架 5】实现时注意时区一致性,确保 start_date 和调度周期正确,避免 SLA 误报。
  6. 【关键点 1】SLA 是预期完成时间,非硬性超时终止机制。
  7. 【关键点 2】通过 default_args 或任务级别的 sla 参数设置,值为 timedelta。
  8. 【关键点 3】需要配置 smtp 或 sla_miss_callback 来处理告警。
  9. 【关键点 4】SLA 检查基于 start_date 与 schedule_interval,时区需一致。
  10. 【易错点 1】误认为 SLA 会导致任务自动杀掉,实际仅告警。
  11. 【易错点 2】未配置 smtp 或 callback 导致告警不生效。
  12. 【易错点 3】忽略时区差异导致 SLA 判断错误。