CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
数据工程师入门/课时/编排工具
RawBlame
课时目录12 节

数据工程师入门

  1. 01数据工程是什么
  2. 02基础技能
  3. 03Python 与 SQL
  4. 04存储与数仓
  5. 05数据采集与 ETL
  6. 06编排工具
  7. 07大数据组件
  8. 08数据建模
  9. 09质量与安全
  10. 10云平台与对象存储
  11. 11流处理与 Reverse ETL
  12. 12综合练习

编排工具

Airflow、dbt、Prefect、Luigi。

35 分钟

编排工具

单脚本 + cron 难以管理依赖、重试与可观测性。编排器把 Extract、Transform、Load 变成有向无环图(DAG),并记录每次运行状态。

学习目标

  • 理解 DAG、Task、Operator、Scheduler 等概念
  • 对比 Airflow、dbt、Prefect、Luigi 的定位
  • 能阅读一个简单的每日 ETL DAG 结构

为什么需要编排

cron 痛点编排器能力
任务 B 依赖 A 完成DAG 边定义依赖
失败无统一重试retry、告警、SLA
无运行历史Web UI、日志、血缘
环境参数散落Variables / Connections

Apache Airflow

事实标准之一,Python 定义 DAG:

from airflow import DAG
from airflow.operators.python import PythonOperator
from datetime import datetime

with DAG("tracks_daily", start_date=datetime(2026, 1, 1), schedule="@daily") as dag:
    extract = PythonOperator(task_id="extract_tracks", python_callable=extract_fn)
    load = PythonOperator(task_id="load_staging", python_callable=load_fn)
    extract >> load
概念含义
DAG工作流定义
Task一个步骤
OperatorTask 类型(Python, Bash, SQL)
XComTask 间传小数据

部署可用 Docker Compose;与 docker-compose 思路一致。

dbt(data build tool)

SQL 转换层专用:models、tests、docs 全在 Git。

-- models/mart/mart_track_stats.sql
SELECT track_id, COUNT(*) AS lesson_count
FROM {{ ref('stg_lessons') }}
GROUP BY track_id

Airflow 负责 何时跑;dbt 负责 怎么转。二者常组合。

Prefect、Luigi 为备选;练习栈推荐 Airflow 调度 + dbt 转换 + Git 版本化。

与路线图的关系

  • /roadmaps/data-engineer — Orchestration 节点
  • de-practice — 综合 DAG 设计
  • github-actions-essentials — CI 测 dbt,非替代调度

练习

  • 画出 extract >> transform >> load >> notify 的 DAG 示意图
  • 说明 Airflow 与 dbt 各自负责什么
  • 列举 3 种应在编排层处理的「运维 concern」
  • 小结

    Airflow 定节奏,dbt 写 SQL;编排是可运维的数据管道外壳。 下一课概览 Spark、Kafka、Hadoop 生态。

    加载本节练习…
    ← 上一课数据采集与 ETL下一课 →大数据组件