关键词:SelectDB · Serverless · 云数仓弹性 · 秒级伸缩 · 降本 · Pay As You Go · 阿里云

问题:为什么你的云数仓账单里 70% 的钱白花了
先盘一个常见场景:团队用云数仓支撑 BI 报表,每天上午 9 点到 11 点查询密集,需要 64 核计算资源;剩下 20 小时负载很低,8 核就够。传统固定规格下,你只能按 64 核购买——这就意味着那 20 小时里有 56 核在空转,资源利用率不到 30%。
更头疼的是,遇到临时大查询或突发流量,传统云数仓的扩容要等节点拉起、缓存预热,少说 10 分钟,多则小时级。期间查询延迟飙升,搞不好就是雪崩。
SelectDB Serverless 的思路很直白:让资源跟着负载走——高峰补齐,低谷释放,按实际用量计费。
Step 1:理解三层解耦——为什么“弹性”要做到三层
传统存算分离架构(比如 Snowflake)已经把计算和存储拆开了,但缓存仍然绑死在计算节点上——固定核数对应固定容量的本地 SSD。你想加大缓存提高命中率?可以,但得同时升级计算规格,等于为不需要的算力买单。
SelectDB Serverless 把三层彻底拆开:
复制代码传统架构: 三层解耦后:
┌─────────────────┐ ┌──────────┐
│ Compute Node │ │ Compute │ ← 按实际 CPU 使用率弹性
│ ┌───────────┐ │ ├──────────┤
│ │ Cache │ │ → │ Cache │ ← 独立弹性,不再绑死计算
│ ├───────────┤ │ ├──────────┤
│ │ Storage │ │ │ Storage │ ← 按实际数据量伸缩
│ └───────────┘ │ └──────────┘
└─────────────────┘
这意味着:
- 扩容时计算层独立伸缩,不影响缓存命中率(因为缓存没跟着变)
- 想增加缓存容量提高热数据命中率?直接加缓存,不需要为额外的计算付钱
- 存储按实际数据量,删了数据账单自动降
Step 2:配弹性区间——只需要一个 min/max
在控制台创建实例时,你只需要设一个弹性区间,比如:
复制代码计算弹性区间:8 CCU ~ 128 CCU
剩下的全自动。系统按以下规则决策:
复制代码扩容触发:
CPU: 5秒均值 > 60% # 一旦检测到持续高负载,立即触发
内存: 瞬时利用率 > 60% # 内存敏感场景也能及时响应缩容触发:
CPU: < 30% # 双指标同时满足
内存: < 30% # 且持续 1 分钟以上才开始缩
策略: 渐进式缩容 # 避免频繁抖动
设计原则很明确:扩容要果断,缩容要稳健。
除了阈值规则,系统还有一层 AI 辅助决策——弹性请求触发后,AI 会综合历史负载模式、周期特征和当前资源水平判断是否合理。相比纯规则策略,弹性准确率提升了约 40%。
什么场景能触发多少弹性?
| 场景 | 峰值 | 谷值 | 弹性倍数 | 适合 Serverless? |
|---|---|---|---|---|
| 工作日 BI 报表 | 上午 64 核 | 夜间 8 核 | 8x | 典型场景 |
| ToC 日夜间流量 | 白天 128 核 | 凌晨 8 核 | 16x | 直接上限 |
| 大促秒杀 | 活动 256 核 | 日常 32 核 | 8x | ️ 超 16 倍需横向 |
| 稳定 ETL | 全天 32 核 | 32 核 | 1x | 包年包月更划算 |
Step 3:验证弹性效果——一次完整的扩缩容过程
扩容(低负载 → 高负载)
触发条件:CPU 5 秒均值超过 60%
动作:系统在原地纵向扩容,计算规格实时上调
耗时:秒级
影响:正在执行的查询不受影响(原地伸缩 + 连接不断)
复制代码-- 模拟高负载:并发跑大查询,CPU 撑到 70%
-- 控制台可观测到 CCU 从 8 自动升至 24 → 48 → 根据需要继续升
缩容(高负载 → 低负载)
触发条件:CPU 和内存同时低于 30%,持续 1 分钟
动作:渐进式缩容,逐步释放计算资源
耗时:渐进式(非一次性降到谷值)
影响:查询不受影响
极端场景(峰谷比 > 16 倍)
纵向弹性上限是单集群 16 倍。大促等场景超过这个范围时,通过控制台触达横向弹性(增加节点数),耗时约 3 分钟,查询延迟有小幅波动但整体可控。
成本测算:Serverless vs 包年包月
回到开头 64 核 BI 场景做个简单估算:
复制代码高峰期:4 小时/天 × 64 CCU
平峰期:6 小时/天 × 16 CCU
低谷期:14 小时/天 × 8 CCU → 这 14 小时原方案按 64 CCU 付费弹性释放 = (64-8) / 64 = 87.5% >>> 28% 临界点
当弹性可释放的计算资源超过 28% 时,Serverless 按量计费就开始优于包年包月。87.5% 远超这个门槛,降本效果就非常显著了。
当然,如果你的负载长期稳定在 32 核,峰谷差异几乎为零,那包年包月更经济。Serverless 不是万能药,但峰谷差距越大,它就越香。
缓存独立配置——一个容易被忽略的省钱点
在三层解耦架构中,缓存可以独立配置。实际场景中,你的查询可能只依赖 200GB 的热数据,但计算规格被峰值需求定在 128 核。传统架构下缓存跟着计算走,你只能接受 128 核对应的缓存容量(可能远超实际需求)。
SelectDB Serverless 允许你减小计算规格的同时保持甚至增大缓存容量,匹配实际的热数据量和查询并发,进一步优化成本结构。
适合什么样的团队
- BI 团队:工作日集中查询,夜间/周末几乎无负载,弹性释放比例极高
- AI Agent 平台:查询负载完全不可预测,模型调用可能随时爆发
- 不想管运维的数据团队:只设弹性区间,扩缩容全托管
- 成本敏感型创业公司:用多少付多少,没有沉没成本
Apache Doris 是高性能实时分析数据库,SelectDB Serverless 基于 Doris 内核构建,已在阿里云正式商用。SelectDB 在此基础上提供企业级支持服务。
