第 1 题 · 单选
数据科学家每天使用 Athena 查询 S3 上数 TB 的日志,但每次只读取 5 个字段。公司希望降低扫描数据量和查询成本。最佳改进是什么?
第 01 章 · PDF 第 18-136 页
本章训练一个核心技能:看到数据形态、访问模式、吞吐、延迟和运维约束后,能在格式、对象存储、文件系统和流服务之间做出最小充分选择。
批量对象先想 S3;共享 Linux 文件先想 EFS;超高吞吐训练先想 FSx for Lustre;保留并回放事件先想 Kinesis Data Streams;只需托管交付先想 Data Firehose;有状态实时计算先想 Managed Service for Apache Flink;必须兼容 Kafka 生态再想 Amazon MSK。
| 形态 | 特点 | 例子 | 常见 AWS 起点 |
|---|---|---|---|
| 结构化 | 固定 schema,行列明确,易于 SQL 查询 | 订单表、传感器数值、特征表 | RDS、Redshift、DynamoDB 导出、S3 列式文件 |
| 半结构化 | 记录自带字段,但结构可变化或嵌套 | JSON、日志、Avro 事件 | S3、Kinesis、MSK、OpenSearch |
| 非结构化 | 没有统一行列 schema | 图像、音频、视频、自由文本 | S3;视频流可用 Kinesis Video Streams |
课件用 Volume、Velocity、Variety 描述大数据。考试真正关心的是它们如何改变选择:Volume 影响成本和吞吐,Velocity 影响批处理还是流处理,Variety 影响 schema、格式和转换工具。
| 模式 | 优势 | 代价 | 题干线索 |
|---|---|---|---|
| Data Warehouse | 治理明确,SQL 分析性能稳定 | 装载前通常需要建模和转换 | 结构化 BI、重复聚合、Redshift |
| Data Lake | 低成本保存多种原始数据,schema-on-read | 需要目录、质量与权限治理 | S3、Glue Data Catalog、Athena |
| Lakehouse | 在数据湖上获得事务、表和分析能力 | 表格式和治理更复杂 | 开放表格式、ACID、统一批流 |
| Data Mesh | 按业务域分散数据产品所有权 | 需要强治理标准和跨域协作 | 领域团队、数据产品、联邦治理 |
考试视角:ETL 是提取、转换、装载;ELT 是先装入可扩展目标再转换。题干问具体服务时,先确认转换发生在落地前还是落地后,以及是否需要托管 schema 和作业编排。
| 格式 | 布局 | 适合 | 不适合 |
|---|---|---|---|
| CSV | 文本、行式 | 简单交换、人工检查、广泛兼容 | 嵌套数据、强 schema、高效列查询 |
| JSON | 文本、记录式 | 半结构化事件、灵活字段、API 数据 | 大规模重复分析,存储和解析开销较高 |
| Avro | 二进制、行式 | 事件流、整条记录读取、schema evolution | 只扫描少数列的分析查询 |
| Parquet | 二进制、列式 | Athena/Spark 分析、压缩、只读部分列 | 高频逐条写入或极低延迟单记录更新 |
| ORC | 二进制、列式 | 大规模分析与 Hive 生态 | 简单人工交换和流式逐条消息 |
| RecordIO/TFRecord | 二进制、记录容器 | 把许多样本序列化为训练友好的大文件 | 通用 BI 查询和人工阅读 |
还要把“格式”和“分区”分开:列式格式减少每个文件内部的扫描,S3 分区让查询跳过不相关目录。两者经常同时出现。
S3 提供对象语义、极高耐久性和按使用量计费,适合原始数据、处理后数据、训练集、模型工件和日志。对象通过 bucket、key 和 version 标识;“文件夹”只是 key 前缀的界面表现。
| 需求词 | 优先能力 | 考试注意点 |
|---|---|---|
| 防止公开泄露 | S3 Block Public Access、最小权限 bucket policy | 不要用 ACL 作为现代默认方案 |
| 静态加密并控制密钥 | SSE-KMS + KMS key policy | 调用主体同时需要 S3 与 KMS 权限;高吞吐注意 KMS 配额 |
| 强制传输加密 | bucket policy 拒绝 aws:SecureTransport=false | 默认加密不等于强制 TLS |
| 恢复误删或覆盖 | Versioning | 版本会增加存储成本,可配生命周期 |
| 跨区域/同区域复制 | CRR / SRR | 通常需要启用版本控制,并明确复制范围和 KMS 权限 |
| 冷热分层 | Lifecycle、Intelligent-Tiering | 训练热数据和归档模型工件的访问频率不同 |
| 多团队不同访问入口 | S3 Access Points | 每个访问点可有独立策略和网络来源 |
| 对象到达后触发处理 | Event Notifications 或 EventBridge | 目标可为 Lambda、SQS、SNS;EventBridge 规则更灵活 |
| 服务 | 语义与范围 | 最强线索 | 主要代价 |
|---|---|---|---|
| Amazon EBS | 块存储,挂到 EC2;卷通常属于一个 AZ | 实例本地低延迟块设备、Provisioned IOPS、训练实例临时下载空间 | 容量和 IOPS 要规划;不是跨实例共享文件系统 |
| Amazon EFS | 托管 NFS,区域级共享文件系统 | 多个 Linux 客户端共享 POSIX 路径、已有预处理/标注应用写入 EFS | 训练必须通过 VPC 访问;吞吐需与工作负载匹配 |
| FSx for Lustre | 高性能并行文件系统,可与 S3 集成 | 超大数据集、很多小文件、随机读取、极高吞吐训练/HPC | 文件系统创建和初始化有开销,冷数据首次读取可能变慢 |
| FSx for NetApp ONTAP | 企业级多协议存储,支持 NFS/SMB/iSCSI | 已有 ONTAP 数据、快照/克隆、混合云企业文件工作负载 | 功能和管理面比单纯训练输入复杂 |
| FSx for Windows | 托管 Windows 文件服务器,SMB | Windows 原生、Active Directory、SMB 共享 | 通常不是 SageMaker Linux 训练的首选 |
| FSx for OpenZFS | 托管 OpenZFS 文件系统 | ZFS 快照、克隆和低延迟文件访问迁移 | MLA-C01 D1 的直接优先级低于 Lustre/ONTAP |
EBS 是块设备;EFS 是共享 NFS;FSx 是一族托管文件系统。题干写“从 S3 提供高吞吐并行训练文件系统”时,答案是 FSx for Lustre,而不是泛称 FSx。
SageMaker 可以从 S3、EFS 或 FSx for Lustre 提供训练数据。对 S3,还要在 File、FastFile 和 Pipe 模式之间选择。
| 模式 | 行为 | 适用场景 | 限制/代价 |
|---|---|---|---|
| File | 训练开始前把数据完整下载到实例卷 | 较小数据集;可接受启动等待;训练会多次本地读取 | 实例存储必须容纳全量数据;小文件多时启动慢 |
| FastFile | 用 POSIX 接口按需流式读取 S3 对象 | 大文件、顺序读取、希望快速启动且不建文件系统 | 随机读取可用但不一定最优;只支持 S3 prefix |
| Pipe | 通过命名管道直接从 S3 流式传入 | 算法原生支持、顺序流式读取、augmented manifest | 训练代码需适配;官方说明多数场景已由更简单的 FastFile 取代 |
小数据先试 File;大而连续的文件先试 FastFile;太大、无法合并的大量小文件或强随机访问考虑 FSx for Lustre;数据已经由共享应用写在 EFS 上,再直接挂载 EFS。
| 服务 | 你负责什么 | 核心能力 | 典型题干 |
|---|---|---|---|
| Kinesis Data Streams | 生产者、消费者、分区键与容量模式 | 保留事件、多个消费者、重放、按分区有序 | 实时事件总线、回放训练数据、多个独立消费者 |
| Amazon Data Firehose | 配置来源、缓冲、转换和目标 | 托管交付到 S3、Redshift、OpenSearch、HTTP 等 | 最低运维、允许缓冲、把流持续落到数据湖 |
| Managed Service for Apache Flink | Flink 应用逻辑与状态 | 窗口、事件时间、有状态计算、复杂流转换 | 实时聚合、会话窗口、持续特征、状态和 checkpoint |
| Amazon MSK | Kafka topic/partition/client 设计 | 托管 Apache Kafka 控制面,兼容 Kafka API 和生态 | 迁移既有 Kafka 客户端、连接器和工具 |
| AWS Lambda | 短时无服务器函数 | 事件驱动的轻量无状态转换 | 简单记录清洗、触发式处理、无需持续集群 |
Kinesis Data Streams 是可保留、可重放、可由多个应用消费的流平台;Data Firehose 是把数据以托管方式缓冲并交付到目标。Firehose 可以直接接收记录,也可以读取现有 Kinesis data stream。需要自定义消费者和重放时选 Streams,只需要最低运维地落地时选 Firehose。
课件中的 “Kinesis Data Firehose” 现名为 Amazon Data Firehose。“Kinesis Data Analytics for SQL Applications” 已于 2026-01-27 停止支持;新题和新架构应使用 Amazon Managed Service for Apache Flink。官方考纲仍明确包含 Apache Flink 和 Apache Kafka 概念。
主来源:Kinesis Data Streams、Amazon Data Firehose、Managed Service for Apache Flink、Amazon MSK
| 症状 | 先看 | 常见原因 | 方向 |
|---|---|---|---|
| 部分 shard 被限流 | partition key 分布、写入指标 | hot shard、突发流量、单记录过大 | 改善 key、拆分 shard、改 On-demand、批量写入 |
| 消费者越来越落后 | GetRecords.IteratorAgeMilliseconds | 处理速度不足、共享读吞吐争用 | 扩消费者、优化处理、enhanced fan-out |
| Firehose 无法交付 | 交付日志和目标错误 | IAM、KMS、目标网络/权限、转换失败 | 验证角色和 key policy,检查 S3 backup |
| S3 训练启动很慢 | 文件数、平均大小、下载阶段 | 大量小文件、File 模式全量下载 | 合并文件、FastFile、FSx for Lustre |
| EFS/FSx 无法挂载 | VPC、子网、安全组、文件系统策略 | 网络路径或权限不完整 | 验证同 VPC 可达性与入站/出站规则 |
| SSE-KMS 数据拒绝访问 | S3 policy、IAM、KMS key policy | 只授权了 S3,未授权 KMS;跨账户 key policy 缺失 | 沿调用主体逐层验证权限 |
在 SageMaker Pipeline 中,ProcessingStep/TrainingStep 只是消费者。题目若问数据为何慢,先把问题退回数据平面:对象大小、输入模式、文件系统、网络、分区和权限;不要立刻改 Pipeline 编排。
这些题混合格式、存储和流服务。先圈出决定性需求词,再作答。
第 1 题 · 单选
数据科学家每天使用 Athena 查询 S3 上数 TB 的日志,但每次只读取 5 个字段。公司希望降低扫描数据量和查询成本。最佳改进是什么?
第 2 题 · 单选
一个 SageMaker 训练任务需要随机读取 S3 中数百万个无法合并的小文件,并要求极高吞吐。最佳数据源是什么?
第 3 题 · 单选
公司需要保留传感器事件供三个独立应用实时消费,并能在修复消费者后重放历史记录。应选择什么?
第 4 题 · 匹配
把需求与最匹配的存储或流服务配对。
第 5 题 · 排序
把实时特征管道按合理的数据流顺序排列:先保留原始事件,再做有状态窗口聚合,随后托管交付,最后进入训练数据湖。
第 6 题 · 多选
Kinesis Data Streams 的单个 shard 持续被限流,但其他 shard 很空闲。哪些动作最直接?选择两项。
第 7 题 · 单选
一个 400 GB 的训练集由少量大文件构成,训练代码使用普通文件路径并主要顺序读取。团队希望快速开始训练且不创建文件系统。首选什么?
第 8 题 · 单选
旧资料建议新建 Kinesis Data Analytics for SQL 应用来做窗口聚合。到 2026 年应采用什么当前服务?
第 9 题 · 多选
SageMaker 跨账户读取使用 SSE-KMS 加密的 S3 训练数据时,通常需要检查哪些权限层?选择三项。
尚未提交
现在不看表格,用一句话分别解释:Kinesis Data Streams 与 Data Firehose、EFS 与 FSx for Lustre、File 与 FastFile。任何一组说不清,都可以把你的解释发给教师继续追问。