别再盲目上 Serverless 了:聊聊 Serverless 数据分析的真相、成本和适用场景

举报
Echo_Wish 发表于 2026/03/10 22:29:53 2026/03/10
【摘要】 别再盲目上 Serverless 了:聊聊 Serverless 数据分析的真相、成本和适用场景

别再盲目上 Serverless 了:聊聊 Serverless 数据分析的真相、成本和适用场景

作者:Echo_Wish

很多人最近跟我聊天时都会问一句:

“Echo,数据平台是不是未来都会 Serverless?”

说实话,这个问题我听得有点多了。很多团队一听到 Serverless 数据分析 就两眼放光,感觉像找到了数据平台的终极答案:
不用运维、不用集群、自动扩容、按量付费。

听起来确实很香。

但我见过不少团队 上线三个月后账单翻倍,又灰溜溜迁回自建 Spark 集群。

所以今天咱们不讲宣传册里的 Serverless,而是聊点真实的:

Serverless 数据分析到底值不值得?什么时候该用?什么时候千万别用?


一、什么是 Serverless 数据分析?

简单一句话:

不用管服务器,直接跑 SQL 或代码,按使用量付钱。

典型代表:

  • AWS Athena
  • BigQuery
  • Snowflake
  • 阿里云 MaxCompute Serverless
  • Azure Synapse Serverless

传统架构:

数据 → HDFS/S3 → Spark/Flink → 集群

Serverless:

数据 → 对象存储 → SQL查询 → 自动算力

开发体验大概像这样:

SELECT 
    user_id,
    count(*) AS orders
FROM orders
WHERE order_time >= '2026-01-01'
GROUP BY user_id
ORDER BY orders DESC
LIMIT 10;

执行时:

  1. 自动分配计算节点
  2. 扫描数据
  3. 查询结束自动释放

你只看到 SQL

服务器在哪?不知道。
多少节点?不知道。
运维?不存在。


二、Serverless 最大的优势

我总结过一句话:

Serverless 不是技术升级,是运维革命。

核心优势其实就三个。


1 不用维护集群

很多人低估了数据平台的运维成本。

传统 Spark 集群要维护:

  • Yarn / K8s
  • HDFS
  • Spark版本
  • Shuffle
  • 容量规划

很多团队其实 30%时间在救火

而 Serverless 的模式是:

对象存储 + SQL

举个例子:

直接查询 S3 数据:

import boto3

client = boto3.client("athena")

query = """
SELECT count(*)
FROM logs
WHERE day='2026-03-01'
"""

client.start_query_execution(
    QueryString=query,
    QueryExecutionContext={"Database": "analytics"},
    ResultConfiguration={"OutputLocation": "s3://query-result/"}
)

你甚至不用启动 Spark。


2 自动扩缩容

传统集群的问题:

高峰期资源不够
低峰期资源浪费

Serverless 的逻辑是:

任务来了 → 自动扩容
任务结束 → 资源释放

比如:

一个 BI 查询突然需要 500 个并发节点

Serverless 可以瞬间扩容。

自建 Spark 集群?
可能得提前准备几十台机器。


3 成本按查询付费

很多云厂商的计费方式:

按扫描数据量收费

例如:

$5 / TB 扫描

如果查询只扫描 10GB:

成本 = 0.05$

这对 轻量分析场景 非常友好。


三、Serverless 的真实问题

很多文章只讲优点,但我更想讲讲


1 成本失控

很多团队上线后发现一个问题:

账单不可控。

原因很简单:

查询扫描数据太多。

举个例子:

假设表是 5TB。

一个简单 SQL:

SELECT *
FROM logs
WHERE user_id = 1001

如果 没有分区

扫描 5TB。

成本:

5TB × $5 = $25

一个 BI 看板每天跑 100 次:

$2500 /

所以 Serverless 的核心优化:

一定要做好分区。

比如:

s3://logs/year=2026/month=03/day=10/

SQL:

SELECT *
FROM logs
WHERE year=2026
AND month=3
AND day=10
AND user_id=1001

扫描数据从 5TB → 20GB

成本瞬间降 200 倍。


2 延迟问题

Serverless 有一个天然问题:

冷启动延迟。

很多查询需要:

3 ~ 10 秒启动

对 BI 系统来说:

用户会觉得卡。

很多公司后来会做混合架构:

实时 → ClickHouse / Druid
离线 → Serverless

3 SQL 成本很难预测

开发时经常遇到:

两个 SQL 看起来差不多,但成本差十倍。

例如:

SELECT count(*)
FROM logs
WHERE day='2026-03-10'

vs

SELECT *
FROM logs
WHERE day='2026-03-10'

第二个扫描更多列。

成本直接上升。

所以数据团队必须建立:

Query Review 机制。


四、一个真实案例

我之前帮一家互联网公司做过数据架构升级。

他们原来的架构:

Kafka
 ↓
Spark
 ↓
Hive
 ↓
Presto

问题:

  • 集群 200 台机器
  • 运维成本高
  • BI 查询经常排队

后来改成:

Kafka
 ↓
Flink
 ↓
S3 Data Lake
 ↓
Athena / Trino

关键优化:

数据分区

s3://datalake/orders/year/month/day

Parquet 格式

压缩率提升:

10TB → 2TB

列式扫描

SQL:

SELECT 
    country,
    count(*) AS orders
FROM orders
WHERE year=2026
AND month=3
GROUP BY country

扫描数据:

200GB → 12GB

成本:

$0.06

最后结果:

指标 改造前 改造后
运维机器 200台 20台
BI延迟 40秒 5秒
成本 降低40%

五、什么时候该用 Serverless?

我一般给团队一个简单判断。

适合 Serverless:

  • BI 查询
  • 数据探索
  • 数据湖分析
  • 偶发任务
  • 数据科学

不适合 Serverless:

  • 高频 ETL
  • 实时计算
  • 长时间任务
  • 高频 API 查询

比如:

实时推荐系统:

QPS 5000

Serverless 基本不合适。

运营分析系统

每天几十次查询

非常合适。


六、未来趋势:Data Lake + Serverless

数据架构正在变成:

Object Storage
   +
Serverless Compute

核心理念:

存算分离。

未来的数据平台可能是:

S3 / OSS
   +
Athena / BigQuery / Snowflake
   +
实时引擎

甚至很多团队正在尝试:

Lakehouse

比如:

  • Iceberg
  • Delta Lake
  • Hudi

让 Serverless SQL 直接查询数据湖。


最后说点真心话

很多技术都有一个阶段:

新技术 → 过度吹捧 → 理性使用

Serverless 数据分析现在正处在 第二阶段

我的观点很简单:

Serverless 不是万能架构,而是一个非常好用的工具。

用对场景:

成本低、效率高、开发快。

用错场景:

账单爆炸、性能糟糕、团队背锅。

技术从来不是问题。

真正的问题永远是:

架构决策的人有没有想清楚。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。