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

假设你的团队用云数仓支撑 BI 报表,每天上午 9-11 点是查询高峰,需要 64 核计算资源。其他 20 个小时负载很低,8 核就够。在传统固定规格模式下,你只能按 64 核购买——剩余 20 小时里 56 核都在空转,资源利用率不到 30%。
而且遇到临时大查询或突发流量,传统云数仓的扩容需要 10 分钟到小时级(节点拉起 + 缓存预热),期间查询延迟飙升,甚至可能触发雪崩。
SelectDB Serverless 的设计思路很简单:让资源跟负载走,高峰补齐,低谷释放,按实际使用量计费。
传统存算分离架构(如 Snowflake)已经分离了计算和存储,但缓存仍然和计算节点绑定——固定核数对应固定容量的本地 SSD。想加大缓存提升命中率?不好意思,必须同时升级计算规格,等于为不需要的算力买单。
SelectDB Serverless 的做法是把三层全拆开:
复制代码传统架构: 三层解耦后:
┌─────────────────┐ ┌──────────┐
│ Compute Node │ │ Compute │ ← 按实际 CPU 使用率弹性
│ ┌───────────┐ │ ├──────────┤
│ │ Cache │ │ → │ Cache │ ← 独立弹性,不再绑死计算
│ ├───────────┤ │ ├──────────┤
│ │ Storage │ │ │ Storage │ ← 按实际数据量伸缩
│ └───────────┘ │ └──────────┘
└─────────────────┘
这意味着:
在 SelectDB Serverless 控制台创建实例时,你只需要设一个弹性区间,比如:
复制代码计算弹性区间: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 | 包年包月更划算 |
触发条件:CPU 5 秒均值超过 60% 动作:系统在原地纵向扩容,计算规格实时上调 耗时:秒级 影响:正在执行的查询不受影响(原地伸缩 + 连接不断)
复制代码-- 模拟高负载:并发跑大查询,CPU 撑到 70%
-- 控制台可观测到 CCU 从 8 自动升至 24 → 48 → 根据需要继续升
触发条件:CPU 和内存同时低于 30%,持续 1 分钟 动作:渐进式缩容,逐步释放计算资源 耗时:渐进式(非一次性降到谷值) 影响:查询不受影响
纵向弹性上限是单集群 16 倍。大促等场景超过这个范围时,通过控制台触达横向弹性(增加节点数),耗时约 3 分钟,查询延迟有小幅波动但整体可控。
回到开头 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 允许你减小计算规格的同时保持甚至增大缓存容量,匹配实际的热数据量和查询并发,进一步优化成本结构。
关于 Apache Doris:Apache Doris 是高性能实时分析数据库。SelectDB Serverless 基于 Doris 内核构建,在阿里云已正式商用。SelectDB 提供企业级支持。欢迎加入 Doris 社区。