跳转至

数据工程专项 - 学习指南

数据工程学习指南

📚 课程概述

本课程专为清华大学计算机技术专业专硕(985 AI专业本科)设计,目标是帮助学员掌握数据工程核心技术,为进入字节跳动、腾讯、阿里巴巴、百度、大疆、影石等互联网大厂就业做好准备。

🎯 学习目标

完成本课程后,你将能够:

  1. 理解数据工程的核心概念和技术栈
  2. 掌握数据建模和ETL流程设计
  3. 熟练使用数据仓库和数据湖技术
  4. 掌握实时数据处理和流处理框架
  5. 实施数据质量和数据治理
  6. 通过大厂数据工程岗位面试

📅 学习计划(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 面试准备与总结

🚀 下一步行动

  1. 准备学习环境
  2. 安装Python和Jupyter Notebook
  3. 安装Spark和Hadoop
  4. 准备一台配置较好的开发机

  5. 开始第一周学习

  6. 阅读01-数据工程概述.md
  7. 动手实践环境搭建
  8. 完成第一个实践项目

  9. 加入学习社区

  10. 寻找学习伙伴
  11. 加入技术交流群
  12. 定期分享学习心得

  13. 制定个人学习计划

  14. 根据个人情况调整学习节奏
  15. 设定明确的学习目标
  16. 定期检查和调整计划

祝学习顺利!记住:实践是最好的老师,持续学习是成功的关键。