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综合练习

综合练习

设计 tracks 表的每日 ETL DAG 草图。

40 分钟

综合练习

串联本 track 概念:为 CodeRoadMap cf_track / cf_lesson 设计一条 每日批 ETL DAG 草图,含 staging、维度、质量检查与失败告警。

学习目标

  • 完成从源表到 mart 的端到端设计方案
  • 画出 Airflow DAG 任务依赖
  • 列出 dbt models 与 tests 清单

项目:tracks 每日 ETL

业务目标

mart 表 mart_track_daily 供运营查看:

  • 每门课程 lesson 数量
  • 所属 category、level
  • 数据日期 report_date

源表(MySQL OLTP)

表关键字段
cf_trackid, slug, title, category, level, updated_at
cf_lessonid, track_id, slug, duration

分层交付物

1. stg_coderoadmap__tracks      # 增量 Extract
2. stg_coderoadmap__lessons
3. dim_track                    # SCD1 维表
4. mart_track_daily             # 按 report_date 快照

Airflow DAG 草图

start
  → extract_tracks      (JDBC 增量,水位 updated_at)
  → extract_lessons
  → dbt_run_staging     (dbt run --select staging.*)
  → dbt_run_marts       (dbt run --select mart_track_daily)
  → dbt_test            (dbt test)
  → notify_slack        (失败/on_failure)
end

schedule: @daily,catchup=False,重试 2 次。

质量断言(至少 3 条)

  • dim_track.track_id unique + not_null
  • mart_track_daily.lesson_count >= 0
  • staging 最大 updated_at 在 26 小时内

验收清单

  • 文档含 DAG 依赖图,说明 Extract SQL 与幂等 Load
  • 标注查询应在只读副本执行
  • README 链到 已覆盖节点
/roadmaps/data-engineer

选做:Debezium + kafka-essentials CDC;PR 上 dbt test(github-actions-essentials)。

练习

  • 提交 DAG 草图 + 表结构说明(不要求真跑 Airflow)
  • 用 SQL 写出 mart_track_daily 的 SELECT 逻辑
  • 在 /tracks/data-engineer-essentials 回顾 12 课,勾选 /roadmaps/data-engineer 对应节点

小结

tracks 每日 ETL = Extract 增量 + dbt 分层 + 质量门禁 + 编排依赖;本 track 闭环。 深入 SQL 见 sql-essentials,事件流见 kafka-essentials,继续 /roadmaps/data-engineer 高级节点。

加载本节练习…
← 上一课流处理与 Reverse ETL