Apache Airflow DAG 模式
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/airflow-dag-patterns。
技能介绍
要解决什么问题
数据管道一多,靠 cron 和手工脚本很难说清楚「谁先谁后、失败怎么重试、谁在负责」。Apache Airflow 用 DAG 把任务依赖和调度写进代码,但生产里常见的问题是:DAG 结构混乱、任务不幂等、回填把数据跑重、出了问题只有日志没有告警。
本技能面向已经在用或准备上 Airflow 的工程师,把 DAG 设计、Operator/Sensor 实现、测试与部署收成一套可复用的模式,而不是从零翻官方文档拼答案。
技能如何帮你落地
按 playbook 里的步骤,你会先识别数据源、调度周期与任务依赖,再设计带清晰归属和重试策略的幂等任务,避免重跑或回填时重复写入。实现阶段强调在 DAG 上挂可观测性与告警钩子,方便定位失败 run。上线前在预发环境校验,并补齐运维手册。
资源中的 implementation-playbook.md 提供详细模式、检查清单与模板,覆盖自定义 Operator/Sensor、本地 DAG 测试,以及生产环境搭建与失败 run 调试等场景。
适用边界与注意点
- 你只需要单个 cron 或 shell 脚本、或团队技术栈里没有 Airflow 时,不必上这套模式。
- 未经审批不要改生产 DAG 的调度;回填(
backfill)和重试要格外谨慎,否则容易造成数据重复。 - 任务本身与工作流编排无关时,本技能也不对口。
使用场景
- nightly 批处理 ETL 需要把多表抽取、转换、加载串成有依赖的 DAG,并定义失败重试策略
- 上游分区数据未就绪时不应启动下游任务,需要用 Sensor 或自定义就绪检查再触发计算
- 新 DAG 上线前要在本地或预发跑通任务链,验证幂等与回填不会重复写入目标表
- 生产 DAG 某次 run 失败,需要根据日志与告警钩子定位是 Operator 逻辑还是外部依赖超时
适合人员
- 负责公司离线数仓批任务、要把分散 cron 迁到 Airflow 并统一依赖关系的数据平台工程师
- 需要对接内部 API 或专有数据源、编写自定义 Operator/Sensor 的数据开发工程师
- 在生产环境部署或升级 Airflow 集群,并要补齐预发校验与运维手册的平台 / SRE 工程师
- 维护已有 Airflow 实例、经常处理失败 run、回填与调度变更审批的数据管道维护者