1. 课程导入与平台全景

在开始动手搭建任何数据管道之前,我们需要先建立一张"平台全景图"。很多工程师在接触 AWS 数据服务时,容易陷入"逐个服务学习"的陷阱:先学 S3,再学 Glue,再学 Redshift,最后发现这些服务各自都能跑通,却拼不成一条完整的数据链路。本课程的目标不是让你记住每个服务的按钮位置,而是让你理解数据从产生到被消费的完整路径,以及在这条路径上,每个 AWS 服务承担什么角色、彼此如何衔接。

一、什么是云端数据仓库与分析平台

传统数据仓库通常指以关系型数据库为核心、面向主题、集成、相对稳定、反映历史变化的数据集合,用于支持管理决策。而"云端数据仓库与分析平台"是在云环境中构建的、覆盖数据采集、存储、加工、建模、查询、可视化全流程的一整套系统。它与传统方案最大的区别在于三点:存储与计算分离、按需弹性伸缩、服务化托管。

以 Amazon Redshift 为例,它是 AWS 的云数据仓库服务,采用列式存储与大规模并行处理(MPP)架构。在 RA3 架构下,计算节点与托管存储(Redshift Managed Storage,RMS)分离,你可以独立扩展计算集群规模而不必迁移数据。这意味着"数据量增长"和"查询算力不足"这两个问题可以被分开处理,而不是像传统一体机那样必须整体升级。

但数据仓库只是平台的一部分。一个完整的分析平台还需要:数据湖(Amazon S3)负责低成本存放原始与明细数据;ETL/ELT 工具(AWS Glue)负责抽取、转换、加载;查询引擎(Amazon Athena)负责对 S3 上的数据做即席 SQL 分析;流式服务(Amazon Kinesis)负责实时数据接入;以及 BI 工具(Amazon QuickSight)负责最终的可视化呈现。

二、平台技术栈的层次结构

我们可以把整个平台划分为五个层次,从下到上依次是:

  • 存储层:Amazon S3 作为数据湖底座,存放原始数据(Raw)、清洗后数据(Cleansed)和聚合数据(Curated);Redshift 作为结构化数据仓库,存放维度模型与事实表。
  • 计算层:AWS Glue 提供无服务器 Spark 环境执行 ETL 作业;Amazon EMR 用于大规模批处理与自定义 Spark/Hive 场景;Redshift 自身承担仓库内 ELT 与复杂查询。
  • 接入层:Kinesis Data Streams / Firehose 处理实时流;AWS Database Migration Service(DMS)负责从关系型数据库持续复制变更数据(CDC);Glue Crawler 自动发现 S3 数据结构并写入数据目录。
  • 治理层:AWS Glue Data Catalog 统一元数据;AWS Lake Formation 管理细粒度权限;CloudWatch 与 CloudTrail 负责监控与审计。
  • 消费层:Athena 做交互式查询;Redshift Spectrum 直接查询 S3 外部表;QuickSight 生成仪表板与报表。

这五层不是简单的堆叠关系,而是存在明确的数据流向和依赖。下图展示了各层之间的核心连接关系与数据流转方向:

消费层 · 分析与可视化 Amazon Athena Redshift Spectrum Amazon QuickSight Redshift 查询编辑器 治理层 · 元数据与安全 Glue Data Catalog Lake Formation CloudWatch CloudTrail 计算层 · 加工与建模 AWS Glue (Spark ETL) Amazon EMR Redshift (ELT / MPP) Glue Crawler 接入层 · 数据摄取 Kinesis Data Streams Kinesis Firehose AWS DMS (CDC) AWS Snowball 存储层 · 数据湖与仓库 Amazon S3 Raw / Cleansed / Curated Amazon Redshift RA3 · 列式存储 · MPP Redshift Managed Storage 托管存储层 数据自下而上流动

三、学习路径与实战项目

本课程共 30 章,整体遵循"先建底座、再通链路、后做优化"的路径。前 8 章聚焦存储与接入:S3 数据湖分区设计、Glue Crawler 元数据发现、Kinesis 实时流接入、DMS 增量复制。第 9 到 18 章进入加工与建模:Glue ETL 作业编写与调度、Redshift 表设计与分布键/排序键选择、ELT 与 ETL 的取舍、缓慢变化维处理。第 19 到 26 章覆盖查询与消费:Athena 分区裁剪与列式格式优化、Redshift Spectrum 外部表、QuickSight 数据集与计算字段。最后 4 章做治理与成本优化:Lake Formation 权限、CloudWatch 告警、Redshift 弹性调整与成本控制。

贯穿全程的实战项目是一个"电商订单分析平台"。假设我们有一个模拟的订单系统,每天产生约 50 万条订单记录,数据以 JSON 格式落到 S3 的 s3://ecom-raw/orders/dt=YYYY-MM-DD/ 路径下。项目要求最终实现:

  1. 用 Glue Crawler 自动识别 JSON 结构,在 Data Catalog 中生成 ecom_raw.orders 表;
  2. 用 Glue ETL 将 JSON 转换为 Parquet 格式,按 dt 分区写入 s3://ecom-curated/orders/;
  3. 用 Redshift COPY 命令将 Parquet 数据加载到 fact_orders 事实表,并建立 dim_user、dim_product 维度表;
  4. 用 QuickSight 连接 Redshift,制作"每日 GMV 趋势"和"品类销售 Top 10"两个仪表板。

这个项目会贯穿后续所有章节。每学完一个服务,你都会在项目里增加一个可运行的环节,而不是孤立地做练习。到课程结束时,你将拥有一个从原始 JSON 到 BI 仪表板的完整可复现链路。

学习建议:在开始第 2 章之前,请先确认你的 AWS 账户已开通 S3、Glue、Redshift、Athena、QuickSight 五个服务,并创建一个专用的 IAM 用户(不要用 root 账户操作)。建议将区域固定为 us-east-1 或 ap-southeast-1,避免跨区域数据传出产生额外费用。所有实验资源在完成后及时删除,Redshift 集群按小时计费,暂停集群仍会产生存储费用。