- 文集信息
- 目录大纲
- 最新文档
- 知识宇宙
文集详情
文集导读
教程导读
一句话定位:Apache Airflow 是用 Python 代码声明任务依赖、按时或按数据就绪去调度、并在界面上盯进度的工作流编排平台。本教程面向要亲手写出第一条能跑的 DAG、再把它送进生产的数据工程师与平台运维。
这个教程解决什么问题
Cron 能在凌晨两点叫醒一台机器,但它不知道“会话切分必须等日志拉完、归因失败则漏斗聚合别跑、昨天没补上的窗口今天要不要硬追”。脚本能跑,因果链却写在某个人的脑子里。Airflow 把这条因果链变成有向无环图:节点是任务,边是必须满足的前置条件,调度器按时间窗口或数据就绪去创建一次次运行实例。
原文把它比作数据城市的操作系统,这个比喻有一半对:它不替代数仓、计算引擎或消息队列,只负责“何时做、按何顺序、失败怎么退、成功向谁报”。另一半要落地——你真正交付的不是口号,而是一份可解析的 DAG:start_date、schedule、retries、trigger_rule 都写在代码里,调度器才能履约。
本教程的主调是动手优先。第 1 章先写一条能被调度起来的最小 DAG,对照 DAG、Task、Operator、DagRun 这些现场用语;第 2 章把定义、算子、依赖、TaskFlow 写透;第 3 章才拆 Scheduler、Executor 与时间语义。部署、安全、性能、测试放在后半,避免一上来就被架构图淹死。
适合谁读
- 已经会一点 Python,要把定时脚本改成可观测流水线的数据工程师
- 需要给团队立 DAG 规范、选 Executor、盯元数据库的平台或运维同学
- 分析师、ML 工程师:你不一定自己运集群,但要读懂依赖、XCom 和失败重试在说什么
不适合:完全没写过 Python、只想点选 SaaS 向导的读者。本教程会给概念代码,不会给可复制的完整仓库路径。
学完你能做什么
- 写一条带依赖、重试、时间窗口语义正确的 DAG,并解释
execution_date与数据区间的关系 - 在 PythonOperator、专用 Operator、TaskFlow、动态映射之间做取舍,控制 XCom 体积
- 按规模选择 Sequential、Local、Celery、Kubernetes 执行器,并说清 Scheduler 不执行任务
- 给生产定部署边界:元数据库、Worker、日志、密钥、RBAC,以及监控该看哪些状态
- 用 DAG 解析测试、任务级测试和发布闸门,挡住
catchup误开、硬编码密码这类事故
学习路线
图 本教程的动手路径

怎么用这个教程
建议的阅读节奏:第 1 章用一次完整阅读把最小 DAG 和术语对齐;第 2 章对着自己的流水线改,不要另起玩具图。第 3 章在你被窗口坑过一次之后再读,会更记得住。第 4 到第 6 章给要上生产的人。每章预计从一小时到半天不等,取决于你是否动手触发一次失败。
每节有一张对照表、一段概念代码或 ASCII 工位图、以及 ⚠️/💡。代码是语义草稿,不是完整安装手册,也不提供仓库路径。平台禁止外链,需要查官方参数时,到 Apache Airflow 文档按类名检索即可。
| 章 | 你要亲手确认的事 | 读完应能区分 |
|---|---|---|
| 第1章 | 一条 DAG 为何能被解析、暂停、触发 | DAG 与 DagRun、任务与算子 |
| 第2章 | 依赖、XCom、映射怎么写才不会撑爆元数据库 | 控制流与数据流 |
| 第3章 | 任务是谁真正拉起来的 | Scheduler 与 Executor |
| 第4章 | 单机、Celery、K8s 各自把状态放哪 | 元数据、日志、Worker |
| 第5章 | 数据就绪、延迟算子、权限边界 | 时间触发与数据集触发 |
| 第6章 | 合并前要挡哪些回归 | 解析测试与运行时测试 |
先写 DAG ──► 再问谁执行 ──► 再问怎么活过故障 │ └─不要一上来背 Executor 名词表
⚠️ 把
start_date当成“今天几点开机”,是本教程第 1 章和第 3 章反复要拆掉的误读。它是时间坐标原点,不是电源开关。
💡 界面里一次绿色的成功,只说明这一次 TaskInstance 走到了 success。契约写在 DAG 参数里:窗口、重试、触发规则、池。
动手环境只需要 Python 和一份能被调度器扫到的 DAG 定义。开发阶段用 Sequential 或 Local 执行器就够验证依赖边;不要把“先装一套 Kubernetes”当成入门门票。元数据库在开发可以用 SQLite,心里要清楚它进不了生产。连接、变量、池这些抽屉,等第 2 章用到再开,避免一上来把界面点成迷宫。
和原文 brief 的差别也说在这里。旧简介把 Airflow 写成数据城市的操作系统、意图编排中枢、组织契约的物理载体——修辞能帮人建立敬畏,但不能帮你解释为什么 catchup=True 会把连接池抽干。本教程把那些判断收成可检查的字段:窗口、重试、触发规则、池、owner。你写得对不对,调度器会用状态机投票,不靠金句。
官方定位原句是:用程序编写、调度并监控工作流。三个动词对应三件事:你写 DAG,调度器生成运行,Web 界面与日志让失败可见。本教程按这个顺序教,不按编年史教。Spotify 在 2014 年前后用它从 cron 与 Oozie、Luigi 的缝里走出来,这段只当背景:我们关心的是你现在怎么把“先拉后洗再装”写成一张不会在补数时撒谎的图。窗口语义写对了,编排器才开始替你履约。学完后若只能背组件名词、写不出一条会失败得正确的链,请从第 1 章的失败演练重来。失败可见,才算入门。入门之后再谈集群,集群才会听你的图说话。
目录大纲
最新文档
知识宇宙
正在加载知识图谱...