后端开发者的 AWS 大数据指南:从 RDS 到 Data Lake

对于习惯了传统应用架构(Spring Boot + MySQL)的开发者来说,AWS Glue 和 Athena 的世界可能会让人感到陌生。这里的术语------Crawler、Catalog、Spark、S3------构建了一套完全不同的逻辑。

本文将剥离复杂的云厂商术语,从底层原理出发,梳理这套架构的核心逻辑、组件映射以及真实的业务流转场景。


一、 四大核心组件:底层逻辑

在大数据架构中,无论是在 AWS 上还是自建机房,系统永远由四个核心角色组成。我们可以把它们想象成一场**"精密的大型物流作业"**:

  1. JDK (客户端/发号施令者)

    • 角色:指挥官。

    • 职责:它不负责搬运重物,也不负责计算复杂的数据。它只负责发出指令("给我查一下去年的账单"),并等待结果。

    • 类比:在传统架构中它是 Spring Boot 后端;在大数据架构中,它是调用 API 的客户端。

  2. Spark / Compute Engine (计算引擎/干活的劳动力)

    • 角色:分布式工人群体。

    • 职责 :这是真正的"肌肉"。它不是单台机器(像 Nginx),而是一个集群。当你下达指令时,它会把任务拆解给成百上千个"工人"(Executor),让他们去仓库搬货、计算、汇总。

    • 误区 :它不是像 Spring 那样的代码框架,而是一套可以动态扩缩容的分布式操作系统

  3. Metastore (元数据仓储/指路的地图)

    • 角色:仓库管理员的账本。

    • 职责 :它不存真实数据,只记录数据在哪里长什么样(有哪些表、字段类型、S3 路径)。它是计算引擎和存储仓库之间的桥梁。

    • 背景 :这个领域的"老祖宗"是 Hive Metastore,几乎所有现代数据架构都沿用了它的标准。

  4. Object Storage (对象存储/存货的仓库)

    • 角色:无限容量的仓库。

    • 职责:存储真实的原始文件(JSON, CSV, Parquet)。它廉价、持久,但自己没有计算能力。


二、 映射到 AWS:你现在的架构

理解了底层逻辑,我们将它们一一映射到 AWS 的服务中,这就是你当前架构的全貌:

组件角色 AWS 具体服务 你的实际用法
发号施令者 JDK (Java SDK) 你的 EKS 微服务,通过 SDK 调用 Athena API 发起查询请求。
干活的工人 Athena / Glue Job Athena:负责快速 SQL 查询(底层基于 Presto); Glue Job:负责后台大批量数据清洗(底层是 Serverless Spark)。
指路的地图 Glue Data Catalog AWS 托管的 Metastore。它存储了 S3 文件的表结构(Schema),让 Athena 知道怎么读文件。
存货的仓库 Amazon S3 数据湖。存储你从 RDS 搬运过来的原始数据或清洗后的 Parquet 文件。

三、 实战场景:生成"用户年度账单"

为了串联这些组件,我们以一个高频业务场景为例:"用户点击 App 查看 2025 年度消费报告"

这个场景要求处理海量历史数据,且不能影响主业务数据库(RDS)的性能。

1. 准备阶段:数据搬运(Glue Job)

  • 动作 :每天凌晨,Glue Job(Spark 集群)自动启动。

  • 工作 :它连接 RDS,读取昨天的增量订单,进行清洗(脱敏、格式转换),然后以 Parquet 格式 存入 S3。

  • 登记 :Glue 更新 Data Catalog,告诉系统:"S3 仓库里又多了几箱 2025 年的数据。"

2. 触发阶段:下达指令 (JDK)

  • 场景:用户点击"生成报告"。

  • 代码行为 :你的 Java 程序调用 Athena 的 StartQueryExecution 接口。

  • 指令内容

    • SQL: SELECT category, sum(price) FROM orders WHERE user_id='123' AND year='2025'

    • Workgroup: billing-report (用于隔离资源和计费)

3. 执行阶段:劳动力开工 (Athena)

  • 寻址 :Athena 拿着 SQL 询问 Glue Data Catalog :"orders 表的文件在 S3 哪个目录下?"

  • 计算 :Athena 启动分布式节点,并行扫描 S3 中的文件。注意:它只扫描 year=2025 的文件夹(分区裁剪),速度极快且省钱。

  • 落盘:Athena 计算出结果(例如:"餐饮: 500元"),将结果写成 CSV 文件存回 S3 的结果桶。

4. 反馈阶段:结果交付 (JDK)

  • 轮询:JDK 每隔几百毫秒询问 Athena:"查完了吗?"

  • 获取 :一旦状态为 SUCCEEDED,JDK 调用 GetQueryResults 读取数据。

  • 展示:App 端展示精美的年度账单。


四、 核心价值总结

为什么我们要绕这么大一圈,而不直接查 RDS?

  1. 算存分离

    • RDS:只负责每秒几千次的"小读写"(下单、支付)。

    • Athena/S3:负责"一次扫描几亿行"的大分析。

    • 结果:无论你怎么查年度报表,RDS 的 CPU 负载纹丝不动,业务永不卡顿。

  2. Serverless 体验

    • 你不需要像维护 Nginx 那样维护 Spark 集群。AWS Glue 和 Athena 都是 Serverless 的------用的时候自动招募几百个"工人",用完自动解散,按秒计费。
  3. 技术解耦

    • 你的 5 组业务(EKS)只需要通过标准的 SQL 和 API 与数据层交互。底层无论是用 Parquet 还是 CSV,是 Spark 还是 Presto,对业务代码都是透明的。

这就是这套架构的精髓:利用云原生的能力,把最复杂的分布式计算,封装成了最简单的 SQL 接口。

相关推荐
乐迪信息10 小时前
乐迪信息:防止船舶误入禁航区:AI偏航检测精准干预
大数据·运维·人工智能·物联网·安全
培培说证10 小时前
2026 大专大数据与财务管理专业考证选择哪个更实用?
大数据
sld16810 小时前
2026 B2B电商存量时代破局:商联达以数据与生态重构增长逻辑
大数据·人工智能
hnult10 小时前
考试云:智能防作弊功能体系,让招聘笔试更高效、公正
大数据·人工智能·笔记
小北方城市网10 小时前
Python FastAPI 异步性能优化实战:从 1000 QPS 到 1 万 QPS 的踩坑之路
大数据·python·性能优化·架构·fastapi·数据库架构
成长之路51410 小时前
【工具变量】国家级城市群政策DID数据集(2003-2024年)
大数据
周之鸥10 小时前
宝塔面板 + 阿里云 DNS 实现 Let’s Encrypt 证书自动续签(详细图文教程)
阿里云·云计算·宝塔面板·let’s encrypt·自动续签
电商API&Tina10 小时前
电商数据采集 API:驱动选品、定价、运营的数据分析核心引擎
大数据·开发语言·人工智能·python·数据分析·json
Elastic 中国社区官方博客10 小时前
在 ES|QL 中的混合搜索和多阶段检索
大数据·人工智能·sql·elasticsearch·搜索引擎·ai·全文检索