
Apache Airflow 3用代码搭建数据工作流调度的完整指南5分钟跑通第一个DAG【免费下载链接】airflowApache Airflow - A platform to programmatically author, schedule, and monitor workflows项目地址: https://gitcode.com/GitHub_Trending/ai/airflow每天早上9点你要挨个跑十几个数据任务手动等上一个跑完再启动下一个一个失败整天白干还查不到断点在哪。Apache Airflow 就是为这种调度混乱准备的——一个用 Python 代码定义、自动调度并监控工作流DAG的平台适合被数据管道和定时任务折磨的数据工程师与运维同学。它解决了什么问题Airflow 的定位很简单工作流即代码。你用 Python 把流程写出来交给它之后调度、重试、监控全部自动完成。核心是 3 个能力代码化管道工作流版本化、可测试、可评审彻底告别散落在各台机器上的 crontab。自动调度与重试按你定的时间表触发任务失败按retries配置自动重跑不用人盯。可视化监控Web UI 里每个任务的状态、日志、依赖关系一目了然出问题 1 分钟定位。丰富的生态扩展官方 Provider 生态覆盖 Postgres、S3、Snowflake、GCP 等近百种服务装个包就能接。Airflow 3 架构调度器、DAG 处理器、API 服务、触发器等组件各司其职核心概念速览理解 3 个词你就读懂了 Airflow 80% 的文档DAG有向无环图你工作流的地图一张 Python 文件声明哪些任务要跑、谁依赖谁、什么时候跑。Task任务/Operator地图上的工序单是最小执行单元比如跑一段 SQL、执行一条 shell 命令。Scheduler调度器车间主任盯着地图和时间表到点派工、失败重派24 小时不下班。上手实战跑通第一个例子环境准备与安装命令只需 Python 3.10 环境官方同时支持 3.10~3.14两条命令装好# 指定 Airflow 的数据目录默认 ~/airflow 也可省略 export AIRFLOW_HOME~/airflow # 安装 Airflow 3 稳定版 pip install apache-airflow3.3.0启动 standalone 模式# 一条命令初始化数据库、建用户、拉起全部组件 airflow standalone然后写你的第一个 DAG放到$AIRFLOW_HOME/dags/目录下即可建议从仓库自带的 示例 DAG 抄起from airflow import DAG, task # TaskFlow API最 Pythonic 的写法 from datetime import datetime task def collect(): 收集用户行为数据 print(正在拉取点击、浏览、购买数据...) task def feature(): 特征工程 print(生成用户画像与商品特征...) task def train(): 训练推荐模型 print(协同过滤模型训练完成准确率达标准备上线) with DAG( dag_idrecommendation_pipeline, start_datedatetime(2024, 1, 1), scheduledaily, # 每天自动跑一次 ) as dag: collect() feature() train() # 定义任务依赖顺序保存后回到浏览器访问 http://localhost:8080DAG 列表里就能看到recommendation_pipeline点进 Graph 视图依赖关系和执行状态直接呈现出来Graph 视图直观展示任务间依赖关系与实时执行状态进阶玩法动态任务生成分区数量不定也不怕上游表今天 8 个分区、明天 32 个分区用 Task Mapping任务映射就能按数据动态生成任务把列表参数传给taskAirflow 会自动为每个元素派生一个并行任务实例不用改 DAG 结构。Backfill历史数据一条命令补齐管道逻辑修好后想重跑历史数据UI 里点 Backfill或者直接用命令行指定日期范围# 对指定 DAG 回填 2015-01-01 到 2015-01-02 的历史数据 airflow backfill create --dag-id recommendation_pipeline \ --from-date 2015-01-01 --to-date 2015-01-02Backfill 界面为指定 DAG 选择日期范围批量回填规模化与运维从单兵作战到生产集群有 2 条现成路线单机/容器airflow standalone适合开发稍上规模就用官方 Docker 镜像apache/airflow Compose 或 Swarm镜像配方见 docker-stack 文档。Kubernetes 集群用官方 Helm Chart 一条命令拉起生产环境可多实例部署 scheduler 避免单点故障参考 chart 部署文档helm repo add apache-airflow https://airflow.apache.org helm install airflow apache-airflow/airflow分布式架构组件分离部署支持多团队共享同一套元数据库避坑指南3.x 的 Web UI 密码不在终端打印airflow standalone启动后去$AIRFLOW_HOME/simple_auth_manager_passwords.json.generated里取自动生成的管理员密码。SQLite 别进生产本地开发够用生产环境请换 PostgreSQL 或 MySQL官方明确建议。pip 装出依赖冲突Airflow 官方提供已知可用的 constraints 文件安装时按你的 Airflow 与 Python 版本搭配使用可复现性拉满。DAG 文件别干重活它只负责声明结构、会被反复解析求值数据加工请写进任务内部保持文件轻量。现在就去搭起你的第一条管道Airflow 把谁来盯、失败了怎么办、上次跑到哪这些琐事全部收编进代码和界面你只需要专注业务逻辑本身。现在就去跑airflow standalone把第一个 DAG 挂上去吧更多细节请查阅 Airflow 官方文档 与 tutorial 系列教程开启你的数据工作流自动化之旅。【免费下载链接】airflowApache Airflow - A platform to programmatically author, schedule, and monitor workflows项目地址: https://gitcode.com/GitHub_Trending/ai/airflow创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考