尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Apache Airflow 完整指南:5 步跑通你的第一个定时数据管道

Apache Airflow 完整指南:5 步跑通你的第一个定时数据管道 Apache Airflow 完整指南5 步跑通你的第一个定时数据管道【免费下载链接】airflowApache Airflow - A platform to programmatically author, schedule, and monitor workflows项目地址: https://gitcode.com/GitHub_Trending/ai/airflowApache Airflow 是一个开源的工作流调度平台用 Python 代码定义数据管道按时间或事件触发自动执行任务并通过 Web 界面全程监控。它把今天该跑什么、失败了怎么办从人的记忆里移交给系统让重复性任务在无人值守的情况下稳定交付。定位与适用场景哪些工作流交给 AirflowAirflow 擅长的是结构化、周期性、有明确依赖的工作负载每日/每小时的批处理数据管道抽取、清洗、加载、报表机器学习流程的编排训练、评估、部署各步骤的先后协调跨系统任务编排ETL、备份、同步、通知之间的时序控制它的适用边界也很清楚Airflow 不是流式计算引擎不适合毫秒级低延迟的实时流处理重数据处理应该交给 Spark 等外部引擎Airflow 负责调度与协调而非搬运大块数据。五分钟快速上手standalone 模式五步启动Airflow 3.x 提供了airflow standalone命令一条命令初始化数据库、创建管理员、启动全部组件。最短路径如下详细步骤见 airflow-core/docs/start.rst准备 Python 3.10 环境3.2 起支持至 3.14创建虚拟环境并设置AIRFLOW_HOME存放配置、日志与 DAG 的根目录用pip安装apache-airflow官方建议附加 constraints 约束文件保证依赖组合可复现执行airflow standalone浏览器打开localhost:8080登录 Web 界面python3 -m venv airflow_venv source airflow_venv/bin/activate export AIRFLOW_HOME~/airflow pip install apache-airflow[celery]3.1.0 airflow version # 验证安装 airflow standalone # 一键启动数据库迁移、API 与调度器登录密码在 3.x 中不一定会打印在终端官方将其写入$AIRFLOW_HOME/simple_auth_manager_passwords.json.generated用cat查看即可。核心概念DAG、任务与补数据Backfill理解三个概念就够上手了源码结构可参考 airflow-core/src/airflow/。DAG有向无环图一个 DAG 就是一份工作流定义写在一个 Python 文件里声明有哪些任务、谁先谁后、何时触发。有向无环意味着依赖只能单向前进、不能循环。任务TaskDAG 中的最小执行单元。每个任务由一个 Operator算子即执行某类操作的封装或task装饰的 Python 函数承载失败可自动重试。补数据Backfill对已定义的工作流按日期区间批量补跑历史实例。某天调度漏跑或口径变更后需要重算历史用airflow backfill create即可不必手工逐天触发。真实用例每日数据管道的完整闭环场景每天凌晨 02:00 拉取昨日订单清洗后写入分析库并通知值班同学。触发DAG 使用 cron 表达式0 2 * * *声明触发时间DAG 文件放入$AIRFLOW_HOME/dags后被自动拾取注册。执行拉取、清洗、入库三个任务按声明的依赖顺序执行任一步失败Airflow 按任务的重试配置次数与间隔自动重跑不会阻塞下游。监控在 Web 界面的 DAGs 页面可以看到每次运行DAG Run的整体状态与每个任务节点的颜色标记点开单个任务即可看日志与耗时。闭环若某天漏跑用airflow backfill create --dag-id id --from-date ... --to-date ...补齐运行结果沉淀在元数据库中形成可审计的执行历史。进阶能力生产环境常用的五个手段约束文件复现安装pip install时附加--constraint指向对应版本的约束文件避免依赖漂移导致的不可复现环境补数据与手动触发airflow tasks test单跑一个任务做调试airflow backfill create批量补跑日期区间触发器Triggerer3.x 中外部触发如资产就绪、跨 DAG 依赖由 Triggerer 组件承担DAG 文件无需常驻轮询Provider 生态数据库、云厂商、消息通知等连接器以独立 provider 包发布按需安装见 providers/ 目录容器化部署单机用 Docker Compose集群用官方 Helm Chart含调度器、Worker、Triggerer 等组件拆分见 chart/ 目录FAQ新手最常卡住的四个问题问启动后找不到管理员密码3.x 的airflow standalone不一定把密码打印到终端密码自动生成在$AIRFLOW_HOME/simple_auth_manager_passwords.json.generated直接读取该文件。问写好的 DAG 文件为什么在 UI 里看不到确认文件位于$AIRFLOW_HOME/dags目录下且语法无误DAG 由 dag-processor 组件周期解析刚保存的文件需要等一个扫描周期默认较短才会出现。问standalone 能直接用于生产吗不能。standalone 把所有组件装进一个进程只适合开发验证。生产环境应按 airflow-core/docs/administration-and-deployment/ 的指引拆分组件或采用 Docker Compose / Kubernetes 部署。问pip install apache-airflow装完报依赖冲突这是已知情况官方文档明确建议通过对应版本与 Python 版本的 constraints 文件锁定依赖组合安装指引见 airflow-core/docs/start.rst。结语与下一步Airflow 的价值在于把流程从口头约定变成可版本化、可重试、可追溯的代码资产。建议的下一步按本文五步在本机跑起 standalone 实例把一段现有的 cron 脚本改写成第一个 DAG 并用 backfill 补跑一天体会调度器接管重复劳动之后的差别。更完整的教程与参考文档在 airflow-core/docs/ 目录从tutorial/系列读起即可系统深入。【免费下载链接】airflowApache Airflow - A platform to programmatically author, schedule, and monitor workflows项目地址: https://gitcode.com/GitHub_Trending/ai/airflow创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表