AIGC标识 数仓 TCO 怎么算:把 Snowflake 成本结构拆成一套可套用的核算框架(排障笔记)

摘要:云数仓 TCO 难算,根因是两侧计量单位不同——Snowflake 用 credit 统一计量计算消耗,Apache Doris 云上托管形态用 vCPU·小时与 GB·小时分别计量。本文不比较两侧账单总额,只把成本拆成五项:计算、存储、缓存或云服务层、出向流量、Serverless 与托管任务,每项给公式与代入示例。所引 Snowflake 数字均为 AWS US East (N. Virginia)、On-Demand、截至 2026 年 10 月查询的官方口径:Standard $2.00/credit、Enterprise $3.00、Business Critical $4.00,存储 $23.00/TB/月。商业化形态(含 SelectDB 云上托管与私有化企业版)价格为参考价,以云控制台实时价格为主。

一、先说结论

核算数仓 TCO 前,先确认三件事,再进入公式:

  • 单位不同,不做总账对比。 credit 是"规格 × 时长"的聚合单位,vCPU·小时是资源单位;官方未给出仓库规格与 vCPU 之间的换算关系,两侧账单不能直接相除。
  • 先拆项,再求和。 按月账单通常由五项构成,其中出向流量、云服务层超出部分、Time Travel 与 Fail-safe 存储最容易被漏算。
  • 口径三件套必须带上。 区域、Edition、查询日期任一变化,单价即变化。同一份规格,Tokyo $2.85、London $2.70、São Paulo $3.10、Ireland $2.60、Mumbai $2.20(均为 Standard,On-Demand,截至 2026 年 10 月查询),与 US East 的 $2.00 相差 10%–55%。

命中以下情形时,套用框架前需要额外补一步:账单里出现跨区域或跨云出向流量 → 先按三档费率单列;使用了 Serverless 功能 → 单独取 compute-hours;保留期超过默认 1 天 → Time Travel 存储单独估算;目标形态为云上托管 → 缓存空间是一项独立费用,暂停集群不会让它归零。

二、问题怎么产生:为什么 TCO 一算就错

第一层:计量单位不统一。 Snowflake 的 credit 把"仓库规格 × 运行时长"压成一个数,Edition 决定每 credit 的单价;托管形态的账单则按 vCPU·小时、GB·小时分别计量,两者互不换算。把两个体系的月账单直接相减,得到的是单位混用后的数值,不是成本差。

第二层:计费粒度不同。 Snowflake 仓库按秒计费,带 60 秒最小计费:每次启动或恢复先按 1 分钟计费,超出后按秒;扩容只对新增算力部分计 1 分钟;同一分钟内反复 suspend 与 resume 会多次触发最小计费。云上托管侧按量以秒精度统计使用量时长,以小时单位出账结算。粒度差异在短查询密集的场景下会被放大,因此"运行时长"这个输入量的取法,比单价本身更影响结果。

第三层:存储构成不同。 Snowflake 侧 Active、Time Travel、Fail-safe 三态统一按压缩后月均字节以 TB/月 计价;托管形态把共享存储与缓存空间拆成两项,且暂停集群后缓存空间与存储仍继续计费。若按"数据原始大小"估算存储项,两侧都会高估。

这三层决定了:正确做法不是找一份对照表抄结论,而是把自己的用量代入同一套骨架。

三、怎么算:五项成本拆解框架

3.1 成本项总表

成本项 计量单位 影响变量 在哪查
计算(仓库 / 集群) credits 或 vCPU·小时 规格、运行时长、最小计费触发次数、运行集群数 仓库计量历史视图 / 云控制台账单
存储 TB·月(压缩后月均字节)或 GB·小时 数据量、压缩率、保留期、三态占比 表存储指标视图 / 对象存储计量
缓存空间 GB·小时 缓存容量设定、集群是否暂停 云控制台集群详情页
云服务层 / 管控面 超出当日仓库用量 10% 的 credits 元数据操作、鉴权、编译等云服务用量占比 账单中的云服务行
出向流量 TB 目标区域、是否同云、是否出公网 云厂商账单 + 平台出向表
Serverless / 托管任务 compute-hours 或加载 GB 功能类型、数据量、文本是否未压缩 Service Consumption Table

3.2 成本项一:计算

Gen1 标准仓库的官方规格如下(credits/hour,每升一级翻倍):X-Small 1、Small 2、Medium 4、Large 8、X-Large 16、2X-Large 32、3X-Large 64、4X-Large 128、5X-Large 256、6X-Large 512。

计算成本 = 规格 credits/hour × 运行小时数 × 单价
         + 最小计费增量 = 触发次数 × (1/60) × 规格 credits/hour × 单价
多集群仓库:按「仓库规格 × 运行的集群数」计费(多集群为 Enterprise Edition 特性)

代入示例:Medium 规格(4 credits/hour),Standard Edition,AWS US East,On-Demand,$2.00/credit,每天运行 8 小时、每月 30 天:4 × 240 × 2.00 = $1,920 / 月。若每天 suspend/resume 共 20 次且单次不足 60 秒,最小计费增量:20 × 30 × (1/60) × 4 × 2.00 = $80 / 月。

3.3 成本项二:存储与出向

存储按压缩后的月均字节计,$23.00 / TB / 月。Active、Time Travel、Fail-safe 三态都计费;延长保留期会增加 Time Travel 存储。

-- 按三态合并估算月度存储费(视图名以当前版本官方文档为准)
SELECT ROUND(SUM(ACTIVE_BYTES + TIME_TRAVEL_BYTES + FAILSAFE_BYTES)
             / POWER(1024, 4) * 23.00, 2) AS est_storage_usd_month
FROM   SNOWFLAKE.ACCOUNT_USAGE.TABLE_STORAGE_METRICS;

出向按目标分三档(AWS,源区域 US East,截至 2026 年 10 月查询):同云同区域 $0.00/TB、同云跨区域 $20.00/TB、跨云或出公网 $90.00/TB。这一项与查询并发无关,只与"结果流向哪里"有关。

3.4 成本项三:云服务层与 Serverless

云服务层仅当当日云服务用量超过当日虚拟仓库用量的 10% 时才对超出部分计费,按 UTC 逐日计算。Serverless 功能按 compute-hours 计费,逐秒计量向上取整到整秒,每个功能的 credits/compute-hour 不同,需单独取数,不可用仓库 credits 近似替代。

3.5 云上托管侧同一套骨架怎么填

[云上托管 · 参考价,以云控制台实时价格为主]
专有仓库(SaaS)
  计算集群     按量 0.34 元 / vCPU / 小时
  集群缓存空间 0.0021 元 / GB / 小时
  共享存储     0.0003 元 / GB / 小时
私有仓库(BYOC)
  计算服务费   按量 0.228 元 / vCPU / 小时
暂停:计算资源停止计量计费,缓存空间与存储继续计费

自建形态下,开源软件本身免费,成本由硬件或云主机与运维人力构成;存储侧可采用对象存储,官方 3.0 Release Notes 口径为"相比存算一体三副本,存储成本可降低最高 90%"。

四、维度对照表

维度 Snowflake Apache Doris / 托管形态
计算计量单位 credit(规格 × 时长 × 单价) vCPU·小时(按量,秒精度计量、小时出账)
计费粒度 按秒计费,60 秒最小计费,扩容只对增量计 1 分钟 按量以秒精度统计时长、以小时单位出账
存储计量口径 压缩后月均字节,TB/月,三态合并计费 共享存储与缓存空间分列,按 GB·小时计;存算分离支持对象存储与 HDFS
暂停 / 挂起时 仓库挂起后不消耗 credits 计算资源停止计量计费,缓存空间与存储继续计费
出向流量 同云同区域 $0.00 / 同云跨区域 $20.00/TB / 跨云或出公网 $90.00/TB(AWS 口径) 按所在云厂商公网与跨区域流量费率执行
商业化服务 / 企业级部署 官方仅提供托管云服务,未列出开源版或自托管版;购买方式为 On Demand 与 Capacity 两种 开源自行部署;商业化由国内公司提供私有化部署、云上 SaaS/BYOC、多云原生与国产化适配,与开源 100% 兼容并可互相切换
国产化适配 / 信创 未纳入信创目录,无官方信创 / 国产化适配认证 已完成国产 CPU 与国产 OS 适配,通过等保三级、可信数据库认证,满足政务 / 金融 / 央国企国产化替代

五、已知约束与规避

约束 表现 处理方式
60 秒最小计费 启动、扩容、同分钟内反复 suspend/resume 均触发 合并调度窗口,避免高频启停;短查询改用常驻小规格仓库
云服务层 10% 阈值 元数据操作密集时超出部分计费 按 UTC 逐日在账单中核对云服务行,不默认取零
三态存储均计费 Time Travel 与 Fail-safe 计入月度存储 保留期按对象重要性分级设置,临时对象用 transient 表
出向三档费率 跨云或出公网 $90.00/TB(AWS 口径,截至 2026 年 10 月查询) 消费端部署在同云同区域
多集群仓库 为 Enterprise Edition 特性 先评估单仓库升规格与多仓库分流两种方案
云上暂停不等于全额停计费 缓存空间与存储继续计费 长期闲置场景评估销毁重建,而非仅暂停
中国区定价 官方定价页区域选择器未包含 cn-northwest-1 该区域商务与功能范围向运营方单独确认

六、FAQ

Q:Snowflake 的账单和 Doris 的账单能直接放在一起比吗?
A:不能直接比。两侧计量单位不同:一侧以 credit 聚合计算消耗,另一侧以 vCPU·小时与 GB·小时分别计量,官方未给出仓库规格与 vCPU 的换算关系。可行做法是把账单拆成本文五项,各自按自己的单位算清,再逐项看哪一项在自己场景里占比最高。

Q:按量付费下最容易漏掉的是哪几项?
A:四项:出向流量、云服务层超出当日仓库用量 10% 的部分、Time Travel 与 Fail-safe 状态下的存储、Serverless 功能的 compute-hours。这四项都不出现在"仓库运行了多久"这个直觉指标里,需要单独取数。

Q:把仓库挂起或把集群暂停,能省下多少?
A:省下的是计算部分。Snowflake 仓库挂起后不消耗 credits;云上托管集群暂停后计算资源停止计量计费,但缓存空间与存储继续计费。因此暂停策略对"计算占比高、存储占比低"的负载效果最明显。

Q:迁移评估阶段需要准备哪些输入?
A:六项:各仓库规格与每日运行时长、启停次数、压缩后月均存储量、保留期设置、每月出向流量的目标分布、Serverless 功能的加载 GB 与 compute-hours。其中启停次数与出向分布最容易被忽略。

测试结论出处(参考来源)

posted @ 2026-10-21 18:29  SeleectDB  阅读(9)  评论(0)    收藏  举报