使用 AWS 构建无服务器数据分析管道:英超联赛仪表盘

发布: (2025年12月16日 GMT+8 23:51)
8 分钟阅读
原文: Dev.to

Source: Dev.to

受 John Culkin 与 Mike Zazon 合著的《AWS Cookbook》启发 – 第 7 章:大数据

我的数据分析之旅

在探索 AWS AI/ML 服务时,我意识到人工智能和机器学习的根本是建立在高质量数据基础之上的。这一洞见促使我先退一步,先掌握数据分析的基础。还有什么比构建一个完整的无服务器管道更好的方式呢?

我使用 AWS S3AthenaQuickSight 创建了一个可扩展的分析解决方案来分析英超联赛数据。

为什么选择英超数据?

作为一名热衷足球的爱好者,我对每个赛季中涌现的丰富统计故事着迷。每场比赛都会产生有意义的数据点——从进球、助攻到战术阵型和球员表现指标。这些结构化的真实世界数据的丰沛,使足球分析成为学习数据工程概念的理想 playground,同时还能处理我真正关心的内容。

我们将构建的内容

  • 使用 Amazon S3 实现 无服务器数据存储
  • 使用 Amazon Athena 进行 SQL 查询
  • 使用 Amazon QuickSight 创建 交互式仪表盘

⚠️ 免责声明: 本项目使用的英超数据完全是虚构的,仅用于演示。如果你看到曼城拥有 150 分或托特纳姆真的赢得了什么,那只是我的创意数据生成在作怪!😄 请不要将其用于你的梦幻足球决策——已经警告过你了!如需真实的英超数据,请查阅官方渠道(并做好面对更现实失望的准备)。

Architecture Overview

AWS Analytics

此无服务器架构消除了基础设施的复杂性,同时提供:

  • 可扩展性 – 自动扩展,无需服务器管理
  • 成本效益 – 按查询付费的计费模式
  • 速度 – 查询结果在秒级返回

实现亮点

1️⃣ S3 数据湖搭建

我将英超联赛的 CSV 文件存储在 S3 中,构建了可扩展的数据基础:

# Create bucket and upload data
aws s3api create-bucket --bucket premier-league-data-$(openssl rand -hex 3)
aws s3 cp data/ s3://your-bucket/raw-data/ --recursive

数据来源

2️⃣ Athena SQL 查询

创建外部表

Athena 的强大之处在于直接从 S3 查询数据而无需迁移。以下是我创建表的方式:

-- Standings table
CREATE EXTERNAL TABLE IF NOT EXISTS standings (
    team_name        STRING,
    matches_played   INT,
    wins             INT,
    draws            INT,
    losses           INT,
    goals_for        INT,
    goals_against    INT,
    goal_difference  INT,
    points           INT
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION 's3://your-bucket/raw-data/'
TBLPROPERTIES ('skip.header.line.count'='1');

-- Match results table
CREATE EXTERNAL TABLE IF NOT EXISTS match_results (
    team_name   STRING,
    result_type STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION 's3://your-bucket/raw-data/'
TBLPROPERTIES ('skip.header.line.count'='1');

Athena 表

示例分析查询

-- Top 6 teams analysis
SELECT team_name, points, goal_difference
FROM   standings
ORDER BY points DESC
LIMIT 6;

前 6 支球队

-- Win‑percentage calculation
SELECT team_name,
       ROUND((wins * 100.0 / matches_played), 2) AS win_percentage
FROM   standings
ORDER BY win_percentage DESC;

胜率

-- Verify data integrity
SELECT * FROM standings;
SELECT * FROM match_results;

排名‑结果

3️⃣ QuickSight 仪表板(简要概述)

  1. 连接 QuickSight 到 Athena 数据源。
  2. 导入 standingsmatch_results 表。
  3. 构建可视化,例如:
    • 每支球队积分的柱状图。
    • 胜率的热力图。
    • 展示赛季积分走势的折线图。

生成的仪表板会在新 CSV 文件上传时自动更新。

在 S3 存储桶中删除 d,Athena 会刷新其元数据。

要点

  • 无服务器 服务(S3 + Athena + QuickSight)让您专注于数据,而不是基础设施。
  • Athena 在存储于 S3 的数据上提供即时、按查询付费的分析。
  • QuickSight 将查询结果转换为交互式可视化,几乎无需运维负担。

试一试吧——将足球数据换成任意基于 CSV 的数据集,您即可在几分钟内拥有一个全托管的分析流水线!

Athena 的关键优势

  • 不需要数据移动
  • 标准 SQL 接口
  • 仅为扫描的数据付费($5/TB
  • 秒级结果

QuickSight 仪表板

构建交互式可视化,包括:

  • 联赛积分榜
  • 积分比较图表
  • 进球差异分析
  • 球队表现指标

QuickSight 仪表板

管理层的业务价值

QuickSight 通过以下方式实现即时 ROI:

  • 决策速度 – 实时仪表板消除等待 IT 报告的时间
  • 成本节约每用户 $9 对比传统 BI 工具(如 Tableau)的 $70+
  • 自助分析 – 业务用户无需技术依赖即可自行创建洞察
  • 移动访问 – 高管仪表板随时随地可用
  • 可扩展性 – 同一架构可支持 10 名用户或 10 000 名用户
  • 安全性 – 内置企业级 AWS 安全与合规

What QuickSight can do
图片来源:amazon.com QuickSight 页面

管理层收益

  • 将报告周期从数周缩短至数分钟
  • 在所有部门实现数据访问民主化
  • 相较传统解决方案,总拥有成本降低 60‑80 %
  • 消除服务器维护和升级成本

结果与洞察

成本细分

  • S3 存储: ~$0.05/月
  • Athena 查询: ~$0.25/月
  • QuickSight: $9/用户/月

总计: ~$9.30/月,实现企业级分析!

关键收获

  • ✅ 设置在 2 小时以内 完成
  • ✅ 无服务器 = 零基础设施管理
  • ✅ 熟悉 SQL 加速了开发
  • ⚠️ 初始排查时需要 QuickSight 权限

下一步

此基础设施开启了以下可能性:

  • 实时数据集成
  • 机器学习预测
  • 使用 AWS Glue 的高级 ETL 流程

最终思考

先掌握数据基础再深入 AI/ML 价值巨大。这个无服务器分析管道展示了强大的数据解决方案并不需要复杂的基础设施——只需合适的 AWS 服务协同工作。

S3 + Athena + QuickSight 组合以极低的启动成本提供企业级分析,使其既适用于学习,也适用于生产场景。

资源

正在构建自己的数据管道?通过 LinkedIn 与我联系——我很想了解你的经验!

Back to Blog

相关文章

阅读更多 »