数据工程专项 - 学习指南¶
📚 课程概述¶
本课程专为清华大学计算机技术专业专硕(985 AI专业本科)设计,目标是帮助学员掌握数据工程核心技术,为进入字节跳动、腾讯、阿里巴巴、百度、大疆、影石等互联网大厂就业做好准备。
🎯 学习目标¶
完成本课程后,你将能够:
- 理解数据工程的核心概念和技术栈
- 掌握数据建模和ETL流程设计
- 熟练使用数据仓库和数据湖技术
- 掌握实时数据处理和流处理框架
- 实施数据质量和数据治理
- 通过大厂数据工程岗位面试
📅 学习计划(18周)¶
第一阶段:数据工程基础(第1-3周)¶
第1周:数据工程概述¶
- 学习内容:
- 数据工程概念、职责、技术栈
- 数据工程师的日常工作
- 数据工程的发展趋势
- 学习时间:20小时
- 实践项目:搭建本地开发环境
- 参考资料:
- 《Data Engineering with Python》
- 《Designing Data-Intensive Applications》
第2周:数据建模¶
- 学习内容:
- 维度建模、星型模型、雪花模型
- ER图设计
- 数据模型优化
- 学习时间:25小时
- 实践项目:设计电商数据模型
- 参考资料:
- 《The Data Warehouse Toolkit》
- 《Data Modeling Essentials》
第3周:ETL流程设计¶
- 学习内容:
- ETL/ELT概念
- 数据抽取、转换、加载
- ETL工具选择
- 学习时间:25小时
- 实践项目:实现ETL流程
- 参考资料:
- 《ETL Best Practices》
- 《Data Integration Blueprint》
第二阶段:数据仓库与数据湖(第4-6周)¶
第4周:数据仓库架构¶
- 学习内容:
- 数据仓库设计
- 分层架构(ODS/DWD/DWS/ADS)
- 主题建模
- 学习时间:25小时
- 实践项目:构建数据仓库
- 参考资料:
- 《Data Warehouse Lifecycle Toolkit》
- 《The Kimball Method》
第5周:数据湖技术¶
- 学习内容:
- Delta Lake、Apache Iceberg、Hudi
- 数据湖架构
- 数据湖仓一体化
- 学习时间:25小时
- 实践项目:搭建数据湖
- 参考资料:
- 《Delta Lake Guide》
- 《Data Lakehouse》
第6周:大数据处理¶
- 学习内容:
- Hadoop、Spark、Hive
- MapReduce编程
- Spark SQL
- 学习时间:30小时
- 实践项目:使用Spark处理大数据
- 参考资料:
- 《Learning Spark》
- 《Hadoop: The Definitive Guide》
第三阶段:实时数据处理(第7-9周)¶
第7周:实时数据处理¶
- 学习内容:
- Kafka消息队列
- Flink流处理
- Spark Streaming
- 学习时间:25小时
- 实践项目:实现实时数据处理
- 参考资料:
- 《Kafka: The Definitive Guide》
- 《Stream Processing with Apache Flink》
第8周:流处理框架¶
- 学习内容:
- Apache Beam
- Apache Flink
- 流处理模式
- 学习时间:25小时
- 实践项目:使用Beam实现流处理
- 参考资料:
- 《Beam Programming Guide》
- 《Stream Processing》
第9周:数据管道¶
- 学习内容:
- Airflow工作流
- dbt数据转换
- 调度系统
- 学习时间:25小时
- 实践项目:构建数据管道
- 参考资料:
- 《Apache Airflow Guide》
- 《The dbt Book》
第四阶段:数据质量与治理(第10-12周)¶
第10周:数据质量¶
- 学习内容:
- Great Expectations
- Deequ
- 数据验证
- 学习时间:20小时
- 实践项目:实施数据质量检查
- 参考资料:
- 《Great Expectations Guide》
- 《Data Quality》
第11周:数据血缘¶
- 学习内容:
- DataHub
- Amundsen
- 元数据管理
- 学习时间:20小时
- 实践项目:构建数据血缘系统
- 参考资料:
- 《DataHub Guide》
- 《Data Lineage》
第12周:数据治理¶
- 学习内容:
- 数据目录
- 数据标准
- 合规管理
- 学习时间:20小时
- 实践项目:实施数据治理
- 参考资料:
- 《Data Governance》
- 《Data Catalog》
第五阶段:数据工程实践(第13-15周)¶
第13周:数据可视化¶
- 学习内容:
- Tableau
- Looker
- Superset
- 学习时间:20小时
- 实践项目:创建数据可视化仪表板
- 参考资料:
- 《Tableau Guide》
- 《Superset Guide》
第14周:数据工程最佳实践¶
- 学习内容:
- 最佳实践
- 性能优化
- 安全管理
- 学习时间:20小时
- 实践项目:优化数据管道
- 参考资料:
- 《Data Engineering Best Practices》
- 《Data Pipeline Optimization》
第15周:数据工程架构¶
- 学习内容:
- 架构设计
- 技术选型
- 扩展性设计
- 学习时间:25小时
- 实践项目:设计数据工程架构
- 参考资料:
- 《Data Engineering Architecture》
- 《Scalable Data Architecture》
第六阶段:项目与面试(第16-18周)¶
第16周:实战项目开发¶
- 学习内容:
- 综合运用所学知识
- 完成完整项目
- 代码审查和优化
- 学习时间:30小时
- 实践项目:完成3-5个实战项目
- 参考资料:
- 项目实战指南
第17周:项目完善¶
- 学习内容:
- 项目优化
- 文档编写
- 部署上线
- 学习时间:20小时
- 实践项目:完善项目
- 参考资料:
- 项目优化指南
第18周:面试准备与总结¶
- 学习内容:
- 大厂面试题复习
- 系统设计题练习
- 项目经验总结
- 模拟面试
- 学习时间:20小时
- 参考资料:
- 面试题库
- 系统设计指南
📖 学习方法建议¶
1. 理论与实践结合¶
- 每学习一个概念,立即动手实践
- 不要只看不练,代码要亲自写
- 记录实践过程中的问题和解决方案
2. 项目驱动学习¶
- 以项目为目标,反向学习所需技术
- 每完成一个项目,总结技术要点
- 将项目部署到真实环境,体验生产场景
3. 深度学习¶
- 不仅要知道"怎么做",还要理解"为什么"
- 阅读官方文档和源码
- 关注技术发展趋势和最佳实践
4. 社区参与¶
- 加入技术社区,参与讨论
- 关注GitHub上的开源项目
- 参加技术分享和会议
5. 持续学习¶
- 数据工程技术更新快
- 订阅技术博客和新闻
- 定期复习和更新知识体系
❓ 常见问题解答¶
Q1: 没有数据库基础可以学习吗?¶
A: 可以,但建议先补充数据库基础知识。课程中会涉及大量数据库操作,建议在学习前先掌握基本的SQL和数据库概念。
Q2: 需要购买云服务器吗?¶
A: 建议购买。虽然可以使用本地虚拟机,但真实云环境的学习体验更好。可以选择阿里云、腾讯云等国内云平台的新手套餐。
Q3: 学习时间不够怎么办?¶
A: 可以根据个人情况调整学习节奏,重点是理解核心概念和完成实战项目。可以适当压缩理论部分,但实践不能省。
Q4: 面试时重点考察什么?¶
A: 大厂数据工程岗位面试重点考察: - 数据建模和ETL经验 - 大数据处理能力(Spark、Hadoop) - 实时数据处理(Kafka、Flink) - 数据仓库和数据湖经验 - 系统设计能力 - 实际项目经验
Q5: 如何证明自己的能力?¶
A: 可以通过以下方式证明: - 完成实战项目并开源 - 获得相关认证(如CDP、Databricks) - 参与开源项目 - 在技术社区分享经验 - 准备详细的项目案例
📊 学习进度跟踪¶
建议使用以下表格跟踪学习进度:
| 周次 | 学习内容 | 完成状态 | 实践项目 | 备注 |
|---|---|---|---|---|
| 1 | 数据工程概述 | □ | □ | |
| 2 | 数据建模 | □ | □ | |
| 3 | ETL流程设计 | □ | □ | |
| 4 | 数据仓库架构 | □ | □ | |
| 5 | 数据湖技术 | □ | □ | |
| 6 | 大数据处理 | □ | □ | |
| 7 | 实时数据处理 | □ | □ | |
| 8 | 流处理框架 | □ | □ | |
| 9 | 数据管道 | □ | □ | |
| 10 | 数据质量 | □ | □ | |
| 11 | 数据血缘 | □ | □ | |
| 12 | 数据治理 | □ | □ | |
| 13 | 数据可视化 | □ | □ | |
| 14 | 数据工程最佳实践 | □ | □ | |
| 15 | 数据工程架构 | □ | □ | |
| 16 | 实战项目开发 | □ | □ | |
| 17 | 项目完善 | □ | □ | |
| 18 | 面试准备与总结 | □ | □ |
🚀 下一步行动¶
- 准备学习环境
- 安装Python和Jupyter Notebook
- 安装Spark和Hadoop
-
准备一台配置较好的开发机
-
开始第一周学习
- 阅读01-数据工程概述.md
- 动手实践环境搭建
-
完成第一个实践项目
-
加入学习社区
- 寻找学习伙伴
- 加入技术交流群
-
定期分享学习心得
-
制定个人学习计划
- 根据个人情况调整学习节奏
- 设定明确的学习目标
- 定期检查和调整计划
祝学习顺利!记住:实践是最好的老师,持续学习是成功的关键。