数据工程已经成为有效数据分析骨干。它涉及管理、处理和优化数据导出可操作洞察。

数据工程路线图

1. 编程语言

  • 学习 SQL 和一些编程语言如 Python、Java 和 Scala

2. 处理技术

  • 学习批处理工具如 Spark 和 Hadoop
  • 流处理工具如 Flink 和 Kafka

3. 数据库

  • 关注关系和非关系数据库
  • 一些例子是 MySQL、Postgres、MongoDB、Cassandra 和 Redis

4. 消息平台

  • 掌握平台使用如 Kafka、RabbitMQ 和 Pulsar

5. 数据湖和仓库

  • 学习各种数据湖和仓库解决方案如 Snowflake、Hive、S3、Redshift 和 Clickhouse
  • 也学习规范化、非规范化、OLTP vs OLAP

6. 云计算平台

  • 掌握云工具使用如 AWS、Azure、Docker 和 K8S

7. 存储系统

  • 学习关键存储系统如 S3、Azure Data Lake 和 HDFS

8. 编排工具

  • 学习编排工具如 Airflow、Jenkins 和 Luigi

9. 自动化和部署

  • 学习自动化工具如 Jenkins、Github Actions 和 Terraform

10. 前端和仪表板

  • 掌握工具使用如 Jupyter Notebooks、PowerBI、Tableau 和 Plotty

进程 vs. 线程

为更好理解这个问题,让我们先看什么是程序。

程序(Program)

  • 可执行文件包含一组指令
  • 被动存储在磁盘上
  • 一个程序可以有多个进程
  • 例如,Chrome 浏览器为每个标签创建不同进程

进程(Process)

  • 意味着程序在执行
  • 当程序加载到内存并变得活跃,程序成为进程
  • 进程需要一些基本资源如寄存器、程序计数器和栈

线程(Thread)

  • 最小执行单元在进程内

程序、进程和线程关系

  1. 程序包含一组指令
  2. 程序加载到内存。它成为一个或多个运行进程
  3. 当进程开始,它分配内存和资源。一个进程可以有一个或多个线程
  4. 例如,在 Microsoft Word 应用,一个线程可能负责拼写检查和另一个线程插入文本到文档

进程和线程主要区别

  • 进程通常独立,而线程存在为进程子集
  • 每个进程有自己内存空间。属于相同进程线程共享相同内存
  • 进程是重量级操作。它花费更多时间创建和终止
  • 上下文切换更昂贵在进程之间
  • 线程间通信更快为线程

语义版本控制(SemVer)

语义版本控制是软件版本控制方案旨在传达意义关于底层变化在发布中。

SemVer 使用三部分版本号

  • MAJOR.MINOR.PATCH
  • MAJOR 版本:递增当有不兼容 API 变化
  • MINOR 版本:递增当功能添加在向后兼容方式
  • PATCH 版本:递增当向后兼容 bug 修复制作

示例工作流

  • 初始开发阶段:开始版本 0.1.0
  • 第一次稳定发布:达到稳定版本:1.0.0
  • 后续变更
    • Patch 发布:bug 修复需要为 1.0.0。更新到 1.0.1
    • Minor 发布:新、向后兼容功能添加到 1.0.3。更新到 1.1.0
    • Major 发布:重大变化不向后兼容引入在 1.2.2。更新到 2.0.0
  • 特殊版本和预发布
    • 预发布版本:1.0.0-alpha、1.0.0-beta、1.0.0-rc.1
    • 构建元数据:1.0.0+20130313144700

Transformers 架构如何工作

Transformers 架构已经成为一些最流行 LLMs 基础包括 GPT、Gemini、Claude、DeepSeek 和 Llama。

Transformers 工作流程

  1. 典型 transformer 模型有两个主要部分:编码器和解码器。编码器读取和理解输入。解码器使用这个理解生成正确输出
  2. 在第一步(输入嵌入),每个词转换为数字(向量)表示它意义
  3. 接下来,位置编码模式告诉模型每个词在哪里在句子中。这是因为词顺序重要在句子。例如”the cat ate the fish”不同于”the fish ate the cat”
  4. 接下来是多头部注意力,这是编码器大脑。它允许模型看所有词一次并确定哪些词相关。在添加和规范化阶段,模型添加它从注意力学习回到句子
  5. 前馈过程添加额外深度到理解。整体过程重复多次所以模型可以深深理解句子
  6. 在编码器完成后,解码器开始行动。输出嵌入转换每个词在期望输出到数字。理解每个词应该去哪里,我们添加位置编码
  7. 掩码多头部注意力隐藏未来词所以模型预测只有一个词一次
  8. 多头部注意力阶段对齐输入正确部分与输出正确部分。解码器看输入句子和它生成词到目前为止
  9. 前馈应用更多处理使最终词选择更好。过程重复几次精炼结果
  10. 在解码器预测数字为每个词后,它传递它们通过线性层准备为输出。这个层映射解码器输出到大集可能词
  11. 在线性层生成分数为每个词后,Softmax 层转换那些分数到概率。词有最高概率选择为下一个词
  12. 最后,人类可读句子生成

2025 年 AI 学习 YouTube 频道和博客

YouTube 频道

  • Two Minute Papers
  • DeepLearning AI
  • Lex Fridman
  • 3Blue1Brown
  • Andrej Karpathy
  • Sentdex
  • Matt Wolfe
  • Google YouTube Channel

博客

  • TowardsDataScience
  • OpenAI Blog
  • MarkTechPost
  • DeepMind Blog
  • Anthropic Blog
  • Berkeley Bair
  • Huggingface Blog

本文为学习目的的个人翻译,译文仅供参考。

原文链接:EP159: The Data Engineering Roadmap

版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。