SaaS 域三块拼图
SaaS 域由三部分拼成:订阅周期快照提供 MRR 来源,用量事实按计量点记录消耗,变更事件表记录升级、降级、退订。账户与套餐是共享维度,续费与流失在指标层定义。用量数据的难点在计量口径统一:同一计量点在不同套餐里单位可能不同,去重规则与重试次数也要写进指标定义,否则跨计量点相加得到的数字没有业务含义。
基本信息
| 快照 | 订阅 × 计费周期 |
|---|---|
| 用量事实 | 计量点 × 时间,多行 |
| 事件 | 升级、降级、退订、暂停 |
| 维度 | 账户、套餐、计量点、销售渠道 |
| 指标 | MRR、NRR、流失率、用量超限率 |
典型使用场景
- 计算 MRR 与净收入留存率,跟踪经常性收入变化
- 用量超限提醒与超额计费,需要计量点级明细支撑
- 套餐升级降级分析,评估对收入结构的影响
- 试用转化分析:试用期激活行为与付费转化的关系
- 与财务收入确认比对,解释 MRR 与确认收入的差异
- 用量峰谷分析:识别资源紧张时段,指导容量规划
- 计量点字典维护:新增计量点需同步登记单位与归属套餐
用量事实
用量事实
-- 用量事实:计量点级粒度,单位由维度统一
CREATE TABLE fact_usage (
usage_id string,
account_sk bigint,
metric_code string COMMENT '计量点编码',
qty decimal(18,4),
usage_ts timestamp
) PARTITIONED BY (dt string) STORED AS ORC;
-- 计量口径写进指标定义,不可跨计量点直接相加
SELECT account_sk, metric_code, sum(qty) AS qty
FROM fact_usage WHERE dt = '2026-10-12'
GROUP BY account_sk, metric_code;建模对象对照
| 建模对象 | 粒度 | 要点 |
|---|---|---|
| 订阅周期快照 | 订阅 × 计费周期 | MRR 的唯一来源 |
| 用量事实 | 计量点 × 时间 | 跨计量点不可直接汇总 |
| 变更事件 | 一次变更一行 | 解释 MRR 变动的构成 |
| 账户与套餐维 | 账户级 | 套餐版本变更需做对照 |
用量数据的去重与重试处理要统一:客户端重试上报会造成重复计量,不做去重,用量与账单之间就会出现系统性偏差。
试用账户与付费账户要分开统计:把试用期用量计入付费指标,会让用量与收入的关系失真,转化分析也失去参考价值。