1. 课程导入与体系总览

在进入具体服务与实现之前,先把“大规模数据管道”这件事讲清楚。很多团队在 AWS 上做数据平台时,第一反应是选服务:S3、Glue、Kinesis、Redshift、Athena、EMR、Lambda……但真正决定项目成败的,往往不是选了哪个服务,而是是否理解数据从产生到消费的完整链路,以及这条链路上“开发”和“治理”如何协同。本课程围绕一条主线展开:用工程化方式构建可扩展的数据管道,同时用治理体系保证数据可信、可查、可控、可审计。

什么是 AWS 大规模数据管道

大规模数据管道,指的是在数据量、数据源数量、消费方数量或时效性要求达到一定规模后,仍然能够稳定运行的数据采集、传输、存储、处理、服务链路。它通常具备几个特征:数据源异构(应用日志、数据库 CDC、IoT 事件、第三方 API、批量文件);数据形态多样(结构化、半结构化、非结构化);处理模式混合(批处理、流处理、微批、交互式查询);消费方多元(BI 报表、机器学习特征、实时风控、数据 API、归档合规)。

在 AWS 上,这条管道不是单一服务,而是一组托管能力的组合。典型形态是:数据先进入 S3 或 Kinesis,经过 Glue/EMR/Lambda/Flink 处理,落入 Redshift、Athena、OpenSearch 或特征存储,再通过 QuickSight、API Gateway、SageMaker 等对外服务。理解这一点很关键:管道是“端到端”的,不是“某个 ETL 作业”。

典型场景:从三条真实链路看管道形态

场景一,日志与行为分析。应用把日志写入 Kinesis Data Streams 或 Firehose,Firehose 按分钟级微批写入 S3,Glue 做分区与格式转换(JSON 转 Parquet),Athena 或 Redshift Spectrum 提供查询。这条链路的关键是分区设计、小文件合并和 schema 演进。

场景二,数据库 CDC 入湖。使用 DMS 或 Debezium 捕获 RDS/Aurora 的变更,写入 Kinesis,再由 Flink 或 Glue Streaming 做去重、打宽、聚合,最终写入 S3 的 Iceberg 表或 Redshift。这里最容易被低估的是乱序、重复和删除事件的处理。

场景三,机器学习特征管道。原始数据入湖后,用 Glue/EMR 做特征计算,写入离线特征表;实时特征则走 Kinesis + Lambda/Flink,写入在线特征存储。训练和推理必须使用同一套特征定义,否则会出现训练-服务偏差。

AWS 大规模数据管道:开发链路与治理体系双轮驱动 开发链路(数据流) 数据源 日志/CDC/API/IoT 采集与传输 Kinesis / Firehose / DMS 存储与入湖 S3 / Lake Formation 处理与计算 Glue / EMR / Flink / Lambda 服务与消费 Redshift / Athena / API 批流一体 · 分区与文件治理 · Schema 演进 · 幂等与重放 · 时效性 SLA 治理体系(贯穿全链路) 元数据与目录 Glue Catalog / 血缘 权限与安全 IAM / Lake Formation / KMS 质量与校验 DQDL / 规则 / 告警 可观测与成本 CloudWatch / 成本标签 合规审计 CloudTrail 治理不是事后补丁:目录、权限、质量、可观测、审计必须与开发链路同步设计、同步上线

核心挑战:规模上来之后,问题会换一批

小数据量时,很多问题被掩盖;一旦日增 TB 级、源表上千、消费方几十个,挑战会集中暴露。第一,数据量与成本。S3 存储便宜,但请求费用、跨 AZ 传输、Glue DPU 时长、Redshift 集群空闲成本会迅速累积。第二,Schema 演进。上游加字段、改类型、删列,下游作业可能直接失败。第三,乱序与重复。流式链路中事件时间与处理时间不一致,Exactly-Once 需要靠幂等写入和事务表实现。第四,小文件与分区爆炸。Firehose 每分钟写一次,一天就是 1440 个文件;若按小时分区再按事件时间细分,元数据压力会拖垮查询。第五,治理缺失。没有数据目录,分析师找不到表;没有血缘,改一个字段不知道影响谁;没有质量规则,脏数据直接进报表。

开发与治理双轮驱动框架

本课程把能力分为两个轮子。开发轮负责“让数据流起来”:采集、传输、存储、处理、服务,关注吞吐、延迟、容错、幂等、重放。治理轮负责“让数据可信可控”:元数据与目录、权限与安全、质量与校验、可观测与成本、合规与审计。两个轮子必须同轴:每新增一条管道,就要同步登记目录、定义权限、配置质量规则、接入监控和成本标签。

一个可落地的检查清单如下,建议在每个数据管道上线前逐项确认:

维度检查项示例判断依据
开发分区与文件大小单文件 128–512 MB,避免单分区超 10 万小文件
开发幂等与重放作业重跑不产生重复数据,可用 Iceberg/Hudi 或幂等键
开发Schema 兼容新增字段可空,删除字段先标记废弃
治理目录登记Glue Catalog 中有表、字段、分区、负责人
治理权限最小化按 Lake Formation 列级/行级授权,而非整库开放
治理质量规则主键非空、枚举合法、金额非负,失败即告警
治理可观测延迟、积压、失败率、成本有仪表盘和阈值
学习建议:本课程后续章节会按“开发链路 + 治理体系”交替推进。每学一个服务,都问两个问题:它在链路中处于哪一段?它对应哪一项治理能力?这样不会把服务学成孤岛。

最后强调一个判断标准:一条大规模数据管道是否合格,不是看它能不能跑通一次,而是看它在数据量增长 10 倍、上游改 schema、下游新增消费方、出现脏数据或作业失败时,是否仍然可恢复、可追溯、可解释。开发决定上限,治理决定下限,两者缺一不可。