数据工程学习路径指南:从搭环境到流处理的 6 个步骤,拆解 contenteditable="false">【免费下载链接】data-engineer-handbookThis is a repo with links to everything you'd ever want to learn about data engineering
项目地址: https://gitcode.com/GitHub_Trending/da/data-engineer-handbook
data-engineer-handbook 仓库集中收录了数据工程的学习资源:从零基础的 SQL、Python,到进阶的数据建模、Spark、Flink 实战,外加 25 本参考书、社区与 Newsletter、面试材料。本文不按"理论/工具/架构"分堆,而是按你实际学习的阶段拆成 6 个步骤,每一步都指明该读什么、练什么,照着走就行。
🛠️ 第 1 步|搭好本地环境,让数据库先跑起来
新手最常见的卡点不是知识,而是环境。这个仓库把环境要求压到了两条:能跑 Docker,以及 Python 3.11+(见 软件要求)。建议把仓库克隆下来再动手:
git clone https://gitcode.com/GitHub_Trending/da/data-engineer-handbook.git然后直接复用仓库里现成的容器编排,不用自己装数据库:
- docker-compose.yml|一条命令拉起 PostgreSQL + PGAdmin|免去手工配置,初始化脚本 负责建库
- example.env|账号密码模板|复制为
.env即可连接,避免每次手填凭据 - 维度建模实验说明|排错手册|端口占用、容器连不上等常见报错都给了对应修复命令
- 初始化数据库 data.dump|样例数据|
pg_restore恢复后就有完整的球员、球队表可练手
连接成功后,PGAdmin 里应能看到服务器节点展开出数据库和表:
📊 第 2 步|用 SQL 练数据建模,把"维度"和"事实"分清
建模是数据工程面试和实践的硬通货。仓库的中级训练营把建模拆成了两块练习,SQL 全部可以直接跑:
| 练习材料 | 解决的问题 |
|---|---|
| SCD 生成查询 | 如何把同一实体不同时期的快照存成可回溯的历史记录 |
| 增量 SCD 查询 | 每天只处理变更行,避免全表重算 |
| 图数据库 DDL | 球员-球队关系类数据怎么组织 |
维度建模的核心思想——事实表记录"发生了什么"、维度表描述"在什么背景下"——可以用这张课堂笔记图快速建立印象:
维度数据建模:事实表与维度表关系的白板笔记
建模练熟后,接着练查询套路。分析模式练习 里的四个文件各自对应一类业务问题:
- 留存分析 retention_analysis.sql|用户第 N 天还回来多少|窗口函数 + 日期偏移的标准写法
- 漏斗分析 funnel_analysis.sql|各步骤转化率怎么算|多事件序列对齐
- 分组聚合 grouping_sets.sql|一次查询出多种粒度的汇总|替代多次 GROUP BY 再 UNION
- 增长核算 growth_accounting.sql|新用户/回流用户拆解|结合累计用户表的建表思路
事实表这一侧,事实数据建模练习 覆盖了累计表、数组指标两类容易写错的表,每份 SQL 都能直接对照跑。
⚡ 第 3 步|用 Python 和 Spark 把管道跑起来
单机 SQL 练完,下一步是批量处理框架。仓库里的 Spark 模块是"作业 + 测试"的结构,适合照着写:
- 月度站点命中作业|第一个 PySpark 管道样例|读 events 数据、聚合、写回
- Iceberg bucket join 笔记本|大表关联为什么慢|分桶策略对 join 性能的影响
- 作业测试 test_monthly_user_site_hits.py|管道怎么验证|测试写法可以直接套用到自己的作业上
- Spark 缓存笔记本|反复读同一份数据贵不贵|缓存与广播变量的取舍
想理解框架底层在干什么,配合仓库 书单 里的三本:
- Designing Data-Intensive Applications|分布式系统为什么这么设计|一致性、复制、分区的全景讲解
- High Performance Spark|任务跑得慢从哪下手|Shuffle、内存、数据倾斜的优化手段
- Streaming Systems|批处理思路为什么在流上失效|Kafka、Flink 等系统的共性原理
🌊 第 4 步|让数据实时更新:Flink 流处理
批管道只能"每天知道",流处理才能"现在就知道"。仓库的 Flink 模块是一个可运行的最小流作业:
- 聚合作业|第一个 Flink 程序|对事件流做窗口聚合,代码量小、能看出全貌
- 初始化 SQL|流作业依赖的表结构|配合 docker-compose.yml 一键起依赖
- 延伸阅读:Stream Processing with Apache Flink(书单收录)|Flink 的窗口、状态、容错|从"会跑"到"懂原理"
📚 第 5 步|用书单和 Newsletter 补齐体系
练习解决"怎么做",书解决"为什么"。books.md 共 25 本,按当前阶段挑 2-3 本就够:
- 刚入门 →Fundamentals of Data Engineering:数据系统设计原则一次讲全,适合通读
- 主攻数仓 →Kimball - The Data Warehouse Toolkit:维度建模方法论源头,与第 2 步练习互相对照
- 关注平台架构 →Data Mesh、Data Management at Scale:大型组织里数据平台怎么分工
- 面向 ML 方向 →The Hundred Page Machine Learning Book:篇幅短,适合快速建立 AI 基础概念
保持手感靠订阅。newsletters.md 列了 25+ 份 Newsletter,优先看 Data Engineering Weekly、Seattle Data Guy 这类周更型,每封邮件读完五分钟,工具选型和行业动向就不会断档。
🎯 第 6 步|做一个完整项目,对着面试清单自检
简历上的"会 Spark"和能讲清一个端到端项目,差距很大。projects.md 里的项目都带完整流程:数据摄取、清洗、存储、可视化、编排,选一个跟完比看十个教程更有效。
求职前用 interviews.md 自检——它把数据工程面试拆成四类轮次:SQL、数据建模、数据架构、数据结构与算法,每类都给了准备思路。系统设计方向的候选人可加一本Machine Learning System Design Interview(书单收录)。
如果对 AI 方向感兴趣,仓库还有一组独立的 Databricks AI 训练营:三天依次搭 Lakebase 应用、向量检索、端到端 AI 应用,每天一个可交付物。
行动清单
- 本周:克隆仓库,完成第 1 步,在本地 PG 里跑通第一条查询
- 第 2-3 周:第 2 步的建模与分析练习,每份 SQL 都改一遍再跑
- 第 4-5 周:第 3 步写一个自己的 PySpark 作业,并补上对应测试
- 第 6 周起:第 4 步的 Flink 作业 + 从书单里挑 1 本开始读
- 投递前:过一遍 interviews.md 的四个轮次,确保每类都能讲出至少一个项目实例
【免费下载链接】data-engineer-handbookThis is a repo with links to everything you'd ever want to learn about data engineering项目地址: https://gitcode.com/GitHub_Trending/da/data-engineer-handbook
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考