← 返回学习台

🗺️ AWS DEA-C01 全景路线图

第一遍 · 鸟瞰地图 — 目标:建立挂钩,不求深挖。
等你每个服务名字都有「啊,对,那个」的感觉,地图就成了。

📖 数据工程大故事 — 用厨房供应链理解

想象一家大餐厅的供应链。数据工程师就是这个供应链的设计师。

1
数据从哪里来?(摄取)
🚚 食材供应商送货上门 — 有的按时送(定时批次),有的实时到(每秒都有)。
AWS 侧:youtube 字幕、用户产出句子、日志事件……都需要「进门」。用 Kinesis(实时货车)或 Lambda + EventBridge(定时接单)把数据收进来。
2
怎么搬、怎么变?(转换)
🔪 厨师把生食材切块、去皮、分类放好才能炒菜 — 不能直接把整头猪扔进锅里。
AWS 侧:raw 素材(.txt / .json)→ Glue 清洗切分 → 结构化列存(Parquet)→ 放进数据湖。japanese-climb 里的 pack.py 就是在做这件事。
3
存哪里?(存储)
🧊 冷冻库放长期备货(Glacier),冰箱放近期用料(S3 Standard),灶台旁放今天要用的(DynamoDB / Aurora)。
AWS 侧:按访问频率分层放。学习包归档 → S3 Glacier;用户实时产出 → DynamoDB;分析查询 → Redshift / Athena。
4
怎么用?(运维 + 分析)
📊 餐厅老板看每天销量报表、厨师长监控备料量 — 数据要能查、要有监控。
AWS 侧:Athena 直接查 S3 里的数据;CloudWatch 看管道有没有堵;Step Functions 编排复杂流程不丢步。
5
怎么不出事?(安全治理)
🔐 只有主厨能进冷冻库,收银员不能看食谱配方 — 权限要分清,密码要锁好。
AWS 侧:IAM 管「谁能做什么」;KMS 管加密;Lake Formation 管数据湖里行级/列级细粒度授权;CloudTrail 留审计日志。

👆 这五步 = DEA-C01 的四个考域。第1~2步 = D1 摄取转换(34%);第3步 = D2 存储(26%);第4步 = D3 运维(22%);第5步 = D4 安全(18%)。

🏗️ DEA-C01 四域全景

考试 65 道题,130 分钟,过线 720 分(满分 1000)。

34%

🚚 D1 · 摄取与转换

把数据搬进来、清洗变形,从原始混乱变成可用的结构化形态。

Kinesis · Glue · Lambda · Step Functions · EMR · AppFlow · MSK

26%

🗄️ D2 · 存储管理

选对地方存数据,配好分层策略、Schema 演化、读写模式。

S3 · DynamoDB · Redshift · Aurora · Lake Formation · Glue Catalog

22%

🔧 D3 · 运维与支持

让管道稳定跑:监控、调度、错误处理、性能优化、部署。

CloudWatch · Athena · EventBridge · SQS · Step Functions 高级 · DMS

18%

🔐 D4 · 安全与治理

确保只有对的人能碰对的数据,加密、审计、合规一样不能少。

IAM · KMS · Secrets Manager · Lake Formation · CloudTrail · Macie

⚡ 18 个核心服务 — 一眼扫过

每张卡:是什么 · 生活类比 · 对应 japanese-climb 的哪段。第一遍不用背,有印象就够。

🚚 D1 · 摄取与转换(34%)

Kinesis Data Streams
实时数据流,按「分片」并行处理,数据可重放。
🏃 多条快递传送带同时跑,包裹能反复取。
如果 japanese-climb 要实时接用户产出 →
core_runtime.py 实时评估路径
Kinesis Data Firehose
流到存储的「自动传送带」,落 S3/Redshift/OpenSearch,无需管分片。
🚿 水管直接接进水箱,不用人守着倒。
data/engine_v0_telemetry/ 里的遥测数据
→ Firehose → S3 Parquet → Athena 查
AWS Glue
托管 ETL 引擎,用 PySpark 跑批量清洗转换,自带 Crawler 自动推断 Schema。
🔪 餐厅中央厨房:食材进来自动洗切分类。
pack.py · pre_teach.py · atom_catalog.py
如果搬 AWS = Glue Job (PySpark)
AWS Lambda
无服务器函数,按事件触发,跑完即销毁,计费精确到毫秒。
🛎️ 按铃才来的服务员,没活不占座。
core_evaluator.py 的评估逻辑
→ Lambda 调 Bedrock / SageMaker
Step Functions
可视化工作流编排,有状态机、分支、重试、并行,把多个 Lambda/服务串起来。
🎬 导演用分镜表指挥每个演员按顺序出场。
transcript.py + youtube_collector.py
→ Step Functions 编排:下载→转写→入库
EventBridge
事件总线 + 调度器,既能按时间触发(cron),也能按事件路由到不同目标。
📅 公司内网的事件通知系统:什么事发给谁。
core_scheduler.py 的定时掌握复习调度
→ EventBridge Scheduler 定时触 Lambda
MSK (Managed Kafka)
托管 Apache Kafka,高吞吐、企业级消息流,兼容 Kafka 生态。
🏭 工厂里的重型传送线,能扛住几千条同时跑。
japanese-climb 目前批量;如果改高吞吐实时
→ MSK 替代 Kinesis(吞吐更大、延迟更低)

🗄️ D2 · 存储管理(26%)

Amazon S3
对象存储,无限扩展,Lifecycle 自动分层,是数据湖的基础。
🏬 仓库:按频率分区放,冷的送冷库节省成本。
seed_data/ · data/curriculum/ja/
→ S3 Standard → Intelligent-Tiering → Glacier
Amazon DynamoDB
全托管 NoSQL,毫秒级读写,按 PK 散列,Streams 追变更。
📇 超快查名片盒:知道名字就能秒拿到,不支持模糊翻。
data/users/u1/paragraph_attempts/
→ DynamoDB(userId 为 PK,高频单用户读写)
Redshift (+ Serverless)
列式数据仓库,为分析查询优化,Spectrum 可直接查 S3 外表。
📊 公司大屏报表的后台数据库:专门给复杂聚合查询用的。
遥测 + 学习进度分析
→ Firehose → S3 Parquet → Redshift Spectrum
Aurora (+ Serverless v2)
兼容 MySQL/PostgreSQL 的云原生关系型数据库,比 RDS 快 5x,Serverless v2 按需伸缩。
🏎️ 升级版的 MySQL:同样的驾驶感,但发动机换了。
db/migrations/001..003*.sql
→ Aurora PostgreSQL Serverless v2
Lake Formation
数据湖的「门卫」,在 S3 + Glue Catalog 上加行/列级细粒度授权,统一治理多账户。
🏦 银行金库:不同级别员工只能看自己权限内的账本页。
japanese_profile.py + 英语 profile 数据隔离
→ Lake Formation LF-Tags 按 profile 授权
Glue Data Catalog
统一元数据仓库,记录「哪张表在哪、Schema 是什么、分区怎么切」,Athena/Redshift 共享。
📚 图书馆索引卡:找书不用一排排翻,查卡片就知道在哪。
pack/grid.json · pack/axis.md
→ Crawler 扫描 S3 → 自动更新 Catalog

🔧 D3 · 运维与支持(22%)

CloudWatch
日志 + 指标 + 告警三合一。EMF 写自定义指标,Alarms 超阈值触发动作。
🩺 餐厅的健康监测仪:厨房温度、出餐速度、投诉量实时看板。
learning_progress_status.py
→ CloudWatch Logs + 自定义 EMF 指标
Athena
无服务器 SQL 引擎,直接查 S3 上的 Parquet/CSV,按扫描量计费。
🔍 「我不用下载文件,直接在仓库里搜」的魔法查询工具。
引擎遥测落 S3 Parquet 后
→ Athena SQL 查:哪个话题错误率最高
SQS
托管消息队列,解耦生产者/消费者,DLQ 接死信,FIFO 保顺序。
🎟️ 排队取号机:高峰期不让顾客直接冲进厨房,排好队一个个来。
ingest 任务失败时
→ SQS DLQ 接住死信,Lambda 重试
ECS Fargate / App Runner
容器化部署。Fargate = 托管容器(你管镜像,AWS 管机器);App Runner = 更简单的 PaaS。
🏠 Fargate 是毛坯房自己装修;App Runner 是全装修拎包入住。
src/jclimb/api.py FastAPI 服务
现在在 Railway → 搬 AWS = ECS Fargate

🔐 D4 · 安全与治理(18%)

IAM
身份与权限管理,用 Policy 定义「谁能对什么资源做什么操作」,最小权限原则。
🏢 公司门禁系统:每个员工的工牌只能开特定的门。
data/users/<u>/ 路径隔离
→ IAM + DynamoDB Partition Key 行级隔离
KMS
密钥管理,给 S3/DynamoDB/Redshift 加密,CMK 自主管理,自动轮换。
🗝️ 保险柜的钥匙保管员:数据是箱子,KMS 管钥匙,两者分开存。
用户产出(敏感)vs 学习包(非敏感)
→ 不同 KMS CMK 分别加密
Secrets Manager
存储和自动轮换 API Key / DB 密码等敏感信息,Lambda 运行时动态拉取。
🔏 公司密码本:统一管,到期自动换,谁都不用知道真正的密码。
.env.local 里的 OPENAI_API_KEY
→ Secrets Manager(vs Parameter Store 低敏)
CloudTrail
记录「谁在什么时间对什么资源做了什么」的审计日志,落 S3,用 Athena 查。
📹 公司全程监控录像:事后查谁动了什么都有据可查。
日后合规要求:谁访问了用户数据
→ CloudTrail + S3 + Athena 审计链

🔗 典型架构 — japanese-climb 搬上 AWS

这就是 japanese-climb 整条数据管道如果全上 AWS 的样子。每个箭头都是一道真实考题。

graph LR A["🎬 YouTube / Web
素材源"] -->|yt-dlp + Whisper| B["Lambda
transcript.py"] B -->|raw .txt| C["S3 Raw
data/curriculum/ja/"] C -->|触发| D["Glue Job
pack.py ETL"] D -->|axis/grid/vocab
Parquet| E["S3 Curated
seed_data/"] E --> F["Glue Data Catalog
schema + partitions"] F --> G["Athena
遥测分析查询"] H["👤 用户产出
paragraph_attempts"] -->|评估请求| I["Lambda
core_evaluator.py"] I -->|调用| J["Bedrock / SageMaker
LLM verdict"] I -->|signal| K["Lambda
signal_mapper.py"] K -->|写状态| L["DynamoDB
user_cluster_state"] L -->|变更流| M["DynamoDB Streams
→ Lambda 双写"] N["EventBridge Scheduler
core_scheduler.py"] -->|定时触发| I O["ECS Fargate
jclimb-api FastAPI"] --> L O --> E P["CloudWatch
Logs + Alarms"] -.监控.-> O P -.监控.-> I P -.监控.-> D style A fill:#fff4ef,stroke:#ff6f3c style H fill:#fff4ef,stroke:#ff6f3c style C fill:#eff8ff,stroke:#3b82f6 style E fill:#eff8ff,stroke:#3b82f6 style L fill:#eff8ff,stroke:#3b82f6 style P fill:#f0fdf4,stroke:#22c55e

💡 盯着这张图记一件事:每个方框都是一道选择题的答案。"哪个服务做 ETL" → Glue。"哪个服务存用户实时状态" → DynamoDB。后面每章都会从图上揪一个方框讲透。

📅 学习地图 — 一个月 20 章

Day 1–4 鸟瞰 → Day 5–24 深挖 → Day 25–30 模考冲刺

D1 · 摄取与转换(7 章,Day 5–11)

D1 · Ch01
Kinesis vs Firehose — 实时流怎么选
D1 · Ch02
Glue Jobs — ETL 引擎深挖
D1 · Ch03
Lambda 摄取模式与限制
D1 · Ch04
Step Functions 工作流编排
D1 · Ch05
EventBridge 事件 + 调度
D1 · Ch06
MSK vs Kinesis — 选型决策树
D1 · Ch07
Glue Crawler + Catalog Schema 演化

D2 · 存储管理(5 章,Day 12–16)

D2 · Ch08
S3 深挖 — 分层 / Lifecycle / 加密
D2 · Ch09
DynamoDB 设计模式与陷阱
D2 · Ch10
Redshift vs Athena — 仓库 vs 查询
D2 · Ch11
Aurora vs RDS vs Serverless v2
D2 · Ch12
Lake Formation 细粒度授权

D3 · 运维与支持(4 章,Day 17–20)

D3 · Ch13
CloudWatch Logs + EMF 自定义指标
D3 · Ch14
SQS 死信队列 + 幂等重试
D3 · Ch15
ECS Fargate vs App Runner 部署
D3 · Ch16
DMS 数据库迁移 + 同构 vs 异构

D4 · 安全与治理(4 章,Day 21–24)

D4 · Ch17
IAM 深挖 — Policy 类型与评估顺序
D4 · Ch18
KMS 加密 — CMK / 信封加密
D4 · Ch19
Secrets Manager vs Parameter Store
D4 · Ch20
CloudTrail + Macie 审计与合规

虚线章节 = 待生成。学到哪章,就在对话窗口说 /aws-dea-tutor chapter DN 主题,我来生成并把它变成可点击的链接。

——— 第一遍鸟瞰结束 · 合上地图,开始爬第一章 ———