Apache Airflow 3.3 介绍与选型指南

Apache Airflow 3.3.2 的 3.x 架构组件、调度模型、官方快速上手示例与同类工作流编排方案选型对比。

Apache AirflowApacheairflow工作流编排定时调度大数据Python2026/10/18

Apache Airflow 3.3 介绍与选型指南

目标:讲清 Apache Airflow 是什么、解决什么问题、由哪些组件构成、如何以官方最小路径跑通第一个 DAG,以及在 2026 年 10 月当前版本(3.3.2)下的同类工作流编排方案选型对比。本文为 A1 认知篇:全部内容基于官方文档、发行目录与 GitHub Release 联网查证编写,关键论断随文标注来源与查询日期(统一为 2026-10-18),不含本地安装实测;安装实测详见本专栏《Ubuntu 22.04 安装 Apache Airflow 3.3 指南(uv 与 pip 双虚拟环境)》等姊妹篇。

一、信息基准

项目内容
查询日期2026-10-18
版本依据GitHub apache/airflow 仓库 releases/latest 返回 3.3.2(发布于 2026-09-17);ASF 官方发行目录 https://downloads.apache.org/airflow/ 当前在架 3.3.2/(另保留 2.11.2 旧线)
许可证Apache License 2.0(GitHub license 字段:Apache-2.0)
运行环境Python 3.10/3.11/3.12/3.13/3.14(自 3.2.0 起,来源:官方 Quick Start,查询日期 2026-10-18);官方支持安装方式为 pip 或 uv

官方来源清单:

二、软件概述

Apache Airflow 是以 Python 代码定义、调度与监控**批处理工作流(DAG,有向无环图)**的开源平台:任务及其依赖关系写在 Python 文件里,由调度器按计划(schedule)或事件触发,全部执行过程在 Web UI 中可视化、可重试、可回填(backfill)。它诞生的目标是把「什么时候跑、按什么依赖跑、失败了怎么办、跑得怎么样」这四个运维问题变成代码与平台能力。

3.x 相对 2.x 的关键变化包括:引入统一的 Task Execution Interface 与 airflow.sdk(Task SDK),Web UI 与 REST API 收敛到 airflow api-server,默认鉴权管理器更换,DAG 版本化与资源级隔离(DAG Bundles)等(来源:官方 Quick Start 中 3.x 的组件与命令形态,查询日期 2026-10-18)。

本次介绍的版本:Apache Airflow 3.3.2(2026-09-17 发布,GitHub Release 与官方发行目录一致)。

三、核心架构

3.1 组件组成(3.x 形态)

组件职责启动命令(官方 Quick Start)
API ServerWeb UI + 稳定 REST API 的统一入口airflow api-server --port 8080
Scheduler解析 DAG、按依赖与计划生成任务实例并调度airflow scheduler
DAG Processor解析 DAG 文件为调度可用的定义(与调度器解耦)airflow dag-processor
Triggerer运行异步 deferrable(可延迟)算子的触发器airflow triggerer
Workers/Executor实际执行任务;可选 LocalExecutor、CeleryExecutor、KubernetesExecutor 等由调度器驱动
Metadata DB全部状态与元数据(推荐 PostgreSQL/MySQL)airflow db migrate

官方 Quick Start 同时提供一体化入口:airflow standalone 会初始化数据库、创建用户并启动全部组件(来源:https://airflow.apache.org/docs/apache-airflow/stable/start.html ,查询日期 2026-10-18)。

3.2 编程模型

  • DAG 即代码:用 Python(推荐 TaskFlow @dag/@task 装饰器)声明任务与依赖,天然可测试、可版本化。
  • 算子(Operator)与提供者(Provider):数百个官方/社区 provider 包覆盖 AWS/GCP/Azure/数据库/消息队列等,算子以 apache-airflow-providers-* 独立发版。
  • 连接(Connection)与变量(Variable):凭据与参数存于元数据库或 Secrets Backend,任务经 conn_id 引用。
  • 调度与回填:schedule 支持 cron/时间表/数据集(资产)触发,支持对历史区间回填。

四、功能特性

  • 可视化运维:DAG 视图、甘特图、任务日志、重试/清除/标记成功等运维操作全部内置于 UI。
  • 丰富的调度语义:cron/interval/资产(Asset)驱动、catchup 回填、依赖感知、超时与重试策略。
  • 弹性执行:Executor 可插拔,从单机 LocalExecutor 到 Celery/K8s 分布式执行(本专栏另有《Apache Airflow 3.3 Celery 集群部署指南》)。
  • 生态第一梯队的集成面:1700+ 官方 provider 算子/钩子(providers 版本独立演进)。
  • 可观测与审计:结构化日志、Metrics(StatsD/Prometheus)、审计事件、RBAC 权限体系。
  • 配置外置:airflow.cfg + 环境变量(AIRFLOW__SECTION__KEY)双层配置(详见本专栏《Apache Airflow 3.3 配置参数详解》)。

五、快速上手(引自官方文档,非本地实测)

以下流程引自官方 Quick Start(来源:https://airflow.apache.org/docs/apache-airflow/stable/start.html ,查询日期 2026-10-18):

# 1. 设置主目录(可选)
export AIRFLOW_HOME=~/airflow

# 2. 以约束文件安装(可复现安装),官方推荐 uv 或 pip
AIRFLOW_VERSION=3.3.2
PYTHON_VERSION="$(python -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')"
CONSTRAINT_URL="https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt"
uv pip install "apache-airflow==${AIRFLOW_VERSION}" --constraint "${CONSTRAINT_URL}"

# 3. 一键启动(初始化数据库、创建用户、启动全部组件)
airflow standalone

# 4. 3.x 下密码不再总是打印到终端,而是写入该文件:
cat ~/airflow/simple_auth_manager_passwords.json.generated

随后浏览器访问 localhost:8080 登录 UI;官方建议生产环境弃用 standalone,改为分进程运行 airflow api-server --port 8080、airflow scheduler、airflow dag-processor、airflow triggerer(来源同上)。

官方 Tutorial(Building a Simple Data Pipeline)给出的 TaskFlow DAG 骨架(节选自 https://airflow.apache.org/docs/apache-airflow/stable/tutorial/pipeline.html ,查询日期 2026-10-18):

import datetime
import pendulum
from airflow.sdk import dag, task
from airflow.providers.common.sql.operators.sql import SQLExecuteQueryOperator

@dag(
    dag_id="process_employees",
    schedule="0 0 * * *",
    start_date=pendulum.datetime(2021, 1, 1, tz="UTC"),
    catchup=False,
    dagrun_timeout=datetime.timedelta(minutes=60),
)
def ProcessEmployees():
    create_employees_table = SQLExecuteQueryOperator(
        task_id="create_employees_table",
        conn_id="tutorial_pg_conn",
        sql="""CREATE TABLE IF NOT EXISTS employees (...)""",
    )

    @task
    def get_data(): ...

    @task
    def merge_data(): ...

    create_employees_table >> [get_data(), ...]

ProcessEmployees()

六、适用场景与限制

适用场景:定时批处理 ETL/ELT、跨系统任务依赖编排、ML 训练/评估管道、报表生成、需要完整运维界面与回填能力的调度中台。

限制:面向有向无环的批处理,不适合毫秒级流式与低延迟事件处理(流式场景应选流引擎或消息系统);DAG 解析与调度为分钟级粒度的中枢设计,海量超短任务(秒级高频)不是强项;3.x 虽已提供稳定公开接口,但从 2.x 升级仍涉及组件与鉴权管理器迁移成本。

七、同类选型对比

对比数据联网实查于 2026-10-18(GitHub API):

维度Apache Airflow 3.3.2Dagster 1.13.26Prefect 3.8.8Argo Workflows 4.1.5
许可证Apache-2.0Apache-2.0Apache-2.0(Apache License 2.0)Apache-2.0
社区活跃度(GitHub stars / 最近推送)47 202 ★ / 2026-10-1716 286 ★ / 2026-10-1624 032 ★ / 2026-10-1717 039 ★ / 2026-10-17
最近发版3.3.2(2026-09-17)1.13.26(2026-10-09)3.8.8(2026-10-06)v4.1.5(2026-10-09)
版本节奏季度级功能版 + 月度补丁月度功能版 + 周度补丁月度功能版 + 周度补丁月度级补丁
编排模型DAG 即代码 + 调度中枢 + 全量运维 UI资产(Asset)与软件定义资产优先的数据编排Python 原生流式 API、动态工作流以 K8s CRD 为核心的声明式流水线
兼容矩阵Python 3.10-3.14;PostgreSQL/MySQL 元库Python 3.9-3.13;PostgreSQL 元库Python 3.9+;自托管或云服务K8s 集群;任意语言经构建产物运行

选型建议:以「定时批处理 + 全运维界面 + 海量 provider 集成」为核心诉求选 Airflow;数据资产血缘与类型化数据管道优先选 Dagster;Python 动态工作流与开发者体验优先选 Prefect;工作负载全部运行在 Kubernetes 且希望以声明式 CRD 编排选 Argo Workflows。

八、参考链接

Apache Airflow 3.3 介绍与选型指南 - Quzuo