Airflow DAG 管道编排最佳实践
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_fccf428b/airflow-dag-patterns-strategy-playbook。
技能介绍
要解决的问题
Airflow 生产环境的可靠性问题很少出在单个 Operator 上,更多是 DAG 设计与运维策略导致的:任务不可重跑、依赖链放大故障、传感器占满 Worker、重试策略缺失。该技能将架构模式沉淀为可执行的检查与示例,帮助工程师在写代码前把边界条件想清楚。
技能如何工作
- 设计原则:围绕幂等、原子、增量、可观测四项原则组织 DAG,使重试与回填行为可控。
- 结构与依赖:给出任务依赖的组织方式,避免跨 DAG 耦合与长链阻塞。
- Operator 与 Sensor:提供自定义 Operator、Sensor 的实现思路,并处理执行资源与等待策略(如
mode='reschedule'、设置timeout)。 - 测试策略:覆盖本地单元测试与集成测试,验证任务在失败与重试下的行为。
- 生产部署:指导将 DAG 从本地迁移到生产,包括部署策略与失败运行的调试路径。
- 最佳实践:明确建议使用
TaskFlow API、避免depends_on_past=True、用{{ ds }}宏而非硬编码日期、保持任务无状态、避免在 DAG 文件中放置重逻辑。 - 分层文档:核心概念提供导航,细节示例在
references/details.md中按需查阅。
适用边界与注意点
- 本技能专注于模式与策略,不包含 Airflow 安装与集群运维的自动化执行。
- 不会自动安装依赖、修改系统权限、创建持久化任务或执行外部下载内容。
- 涉及发送、发布、删除、付款、部署或其他外部写入时,会先展示目标与影响,取得明确确认后才会进行。
- 凭据仅用于用户指定的对应官方服务,不回显、不记录,也不转发到无关地址。
- 命令与代码默认作为参考;只有在明确要求且目标范围清晰时才执行。
使用场景
- 负责数据管道的工程师,需要在 Airflow 中设计 DAG 结构与任务依赖关系。
- 需要实现自定义 Operator 和 Sensor 的开发工程师,处理执行资源与等待策略。
- 运维工程师准备将 DAG 部署到生产环境,需要配置超时与重试策略。
- 工程师遇到 DAG 运行失败,需要定位并解决任务重跑与回填问题。
适合人员
- 负责数据管道编排的数据工程师,希望规范 DAG 设计与任务依赖,避免线上故障。
- 处理 Airflow 生产环境的运维工程师,需要掌握部署策略与故障调试方法。
- 实现自定义组件的开发工程师,关注 Operator 与 Sensor 的资源占用与等待逻辑。
- 编写 DAG 逻辑的算法工程师,希望保持任务幂等且无状态,方便单元测试与回填。