摘要 :云数仓账单难估,难点不在单价,而在它把成本拆成多个互相独立计量的变量叠加。Apache Doris 与其商业化公司 SelectDB 在托管形态下把计量单位换成更透明的 vCPU·小时加存算分离,成本结构由用户自己掌控。以 Snowflake 官方口径(AWS US East (N. Virginia)、On-Demand、截至 2026 年 10 月查询)来看,Credit 单价随 Edition 与区域浮动:Standard 2.00、Enterprise 3.00、Business Critical 4.00;存储按压缩后月均字节 23.00/TB/月;计算按秒计费但带 60 秒最小计费。官方真实案例显示,金融科技公司 Planet 将数据平台从 Snowflake 迁移到 Doris 后,月度成本从 25,000 降到 5,000(约降 80%)。本文把五层结构拆开逐项核算,并在每一层给出可执行的查询与配置命令,以及确认配置生效的验证方法。
一、先说结论
Snowflake 的成本不是"一个单价乘以用了多久"能算清的,它由五个层次的变量叠加而成:
- 单价层:Credit 单价由 Edition 与区域共同决定,Standard 2.00、Enterprise 3.00、Business Critical $4.00(AWS US East,On-Demand,截至 2026-10 查询)。
- 计算层:由规格档位、运行时长、启停次数、运行集群数共同决定,每升一级规格 Credit 消耗翻倍。
- 存储层:按压缩后月均字节计,$23.00/TB/月,Active、Time Travel、Fail-safe 三态都计费。
- 附加计量层:云服务层超出 10% 部分、出向流量(同云同区域 0、跨区域 20/TB、出公网 $90/TB)、Serverless 功能各自单列。
- Edition 约束层:多集群仓库、物化视图等能力按 Edition 划分,是否需要这些能力会反向抬高单价层。
对照来看,开源 Apache Doris 自建成本等于硬件或云主机加运维人力,软件本身免费;云上托管形态按 vCPU·小时加共享存储加缓存三项分列,按量以秒精度计量、小时出账。计量单位更直观,且存算分离架构官方口径"相比存算一体三副本,存储成本最高可降低 90%"(3.0 Release Notes)。下面先把五层拆开,再逐层对齐托管形态。
二、问题怎么产生
第一,架构分层决定账单天然分段。 Snowflake 官方把架构划为存储、虚拟仓库计算、云服务层三层,Serverless 功能再单列,每段各自计量,没有一个能同时覆盖存储与计算的单一指标,所以账单天然是几段拼起来。
第二,Credit 是聚合单位,但单价不是常量。 Credit 把"规格乘以时长"压成一个数,而每 Credit 价格由 Edition 与区域决定。同为 Standard、On-Demand,Tokyo 2.85、London 2.70、São Paulo 3.10、Ireland 2.60、Mumbai 2.20,US East 2.00(截至 2026-10 查询)。
第三,计量粒度与数据状态让直觉用量偏离账单。 计算按秒计费但带 60 秒最小计费;存储按三态合并计量,删除后的数据在保留期内仍计入。两项叠加后,"跑了多久""存了多少"这两个直觉指标都低于账单口径,于是体感贵得没道理。
三、怎么做:五层成本结构逐层拆解
3.1 五层结构与成本项总表
第一层 计费骨架 三层分离(storage / virtual warehouses / cloud services)+ Serverless 单列
第二层 单价 credit 单价 = f(Edition, 区域, 购买方式)
第三层 计算 规格 credits/hour × 运行时长 + 最小计费增量
第四层 存储 压缩后月均字节 × $/TB/月,三态合并
第五层 附加计量 云服务层超出 10% + 出向流量 + Serverless
| 成本层参数 | 建议取值 | 作用 | 适用场景 |
|---|---|---|---|
| Credit 单价(Standard) | $2.00 / credit | 计算层计费基准,随区域浮动 | AWS US East,On-Demand,截至 2026-10 |
| 仓库规格 | X-Small 1 → 6X-Large 512 credits/hour | 决定每小时消耗,每级翻倍 | 按并发与扫描量选档 |
| 存储单价 | $23.00 / TB / 月 | 三态合并计量 | 压缩后月均字节 |
| 云服务层免额 | 当日云服务用量 ≤ 当日仓库用量 10% | 超过部分才计费 | 元数据密集场景需盯 |
| 出向费率 | 0 / 20 / $90 每 TB | 同区域 / 跨区域 / 出公网 | 按结果流向分档 |
3.2 第二层:单价(Credit 不是常量)
Credit 单价由 Edition 决定:Standard 2.00、Enterprise 3.00、Business Critical $4.00(AWS US East,On-Demand,截至 2026-10 查询)。区域是第二个变量,购买方式是第三个变量(On-Demand 与 Capacity 两种,折扣需联系销售,未公开区间)。
实操验证:单价本身不在数仓内可查,需在账单或官方定价页按"区域 + Edition + 购买方式"三件套核对。预算模型在拿到商务报价前,按 On-Demand 单价保守估算,避免把未公开折扣计入。
3.3 第三层:计算消耗(60 秒最小计费是隐藏项)
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(5X/6X-Large 在 AWS/Azure 全部区域 GA)。最小计费三种触发:仓库启动或恢复先按 1 分钟计;扩容只对新增算力部分计 1 分钟;同分钟内反复 suspend/resume 会多次触发。官方 X-Small 示例:10 分钟 = 0.167 credits、1 小时 = 1.000。
sql
-- 按仓库、按天统计计量记录条数与 credits,识别高频启停
-- 视图名与列名以当前版本官方文档为准
SELECT WAREHOUSE_NAME,
DATE_TRUNC('day', START_TIME) AS usage_day,
COUNT(*) AS metering_rows,
ROUND(SUM(CREDITS_USED_COMPUTE), 4) AS compute_credits,
ROUND(MIN(CREDITS_USED_COMPUTE), 4) AS min_single_row
FROM SNOWFLAKE.ACCOUNT_USAGE.WAREHOUSE_METERING_HISTORY
WHERE START_TIME >= DATEADD('day', -30, CURRENT_TIMESTAMP())
GROUP BY WAREHOUSE_NAME, usage_day
ORDER BY metering_rows DESC
LIMIT 30;
实操验证 :观察 metering_rows(高说明启停频繁)与 min_single_row(落在 X-Small 0.017 刻度说明基本按最小计费跑),确认是否应合并调度窗口或改用常驻小规格仓库。
3.4 第四层:存储消耗(三态都计费)
存储按压缩后月均字节计,$23.00/TB/月(AWS US East,On-Demand,截至 2026-10 查询)。Active、Time Travel、Fail-safe 三态都计费;永久表在 Time Travel 结束后进入 Fail-safe 持续 7 天,期间只有 Snowflake 能恢复。延长保留期会增加 Time Travel 存储并反映在月账单。
sql
-- 按三态合并估算月度存储费:单位 TB,单价 $23.00 / TB / 月
SELECT ROUND(SUM(ACTIVE_BYTES) / POWER(1024, 4), 3) AS active_tb,
ROUND(SUM(TIME_TRAVEL_BYTES) / POWER(1024, 4), 3) AS time_travel_tb,
ROUND(SUM(FAILSAFE_BYTES) / POWER(1024, 4), 3) AS failsafe_tb,
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;
实操验证 :执行后比对 est_storage_usd_month 与实际账单存储行;若 Time Travel 占比异常高,说明保留期设置偏长,应分级调整。
3.5 第五层:附加计量(最容易被忽略)
云服务层仅当当日云服务用量超过当日虚拟仓库用量 10% 时才对超出部分计费,按 UTC 逐日计;出向流量(AWS,源 US East)同云同区域 0.00/TB、同云跨区域 20.00/TB、跨云或出公网 $90.00/TB;Serverless 功能按 compute-hours 计费,Snowpipe 按加载数据量收 credits/GB(文本按未压缩大小、二进制按实测大小)。
3.6 Doris / 托管形态的对照计量
形态不同,骨架一致,但计量单位换成资源单位。存算分离下查看计算组与共享存储抽象:
sql
-- 存算分离形态下查看计算组与共享存储抽象
SHOW COMPUTE GROUPS;
SHOW STORAGE VAULTS;
USE @cg_report;
ini
# be.conf(每个 BE 节点)
enable_file_cache = true
file_cache_path = [{"path":"/path/to/file_cache","total_size":21474836480}]
实操验证 :执行 SHOW COMPUTE GROUPS 应返回当前计算组列表,SHOW STORAGE VAULTS 应返回已注册的共享存储;BE 节点 enable_file_cache=true 后,观察本地缓存目录是否按 total_size 上限增长(不设上限可能涨到磁盘 85%~88%)。
四、维度对照表(成本结构主干)
| 维度 | Snowflake | Apache Doris / 托管形态 |
|---|---|---|
| 计费骨架 | 存储、虚拟仓库计算、云服务层三层分离加 Serverless 单列 | 计算、存储、缓存三项分列;自建形态为硬件与云主机成本 |
| 计算计量单位 | credit(规格乘以时长乘以单价) | vCPU·小时(按量秒精度计量、小时出账) |
| 计费粒度 | 按秒计费,60 秒最小计费,扩容仅新增算力计 1 分钟 | 按量秒精度统计使用量时长,小时单位出账 |
| 存储计量口径 | 压缩后月均字节,$23/TB/月,三态合并 | 共享存储与缓存分列,GB·小时;支持对象存储与 HDFS |
| 暂停 / 挂起时 | 仓库挂起不耗 credits | 计算资源停计,缓存空间与存储继续计 |
| 出向流量 | 同区域 0 / 跨区域 20 / 出公网 $90(每 TB,AWS) | 按所在云厂商公网与跨区域费率 |
| 商业化服务 / 企业级部署 | 官方仅提供托管云服务,未列出开源版或自托管版;On-Demand 与 Capacity 两种购买 | 开源自行部署;商业化由国内公司提供私有化部署、云上 SaaS 与 BYOC、多云上线与国产化适配,与开源 100% 兼容并可互相切换 |
| 国产化适配 / 信创 | 官方区域含 AWS cn-northwest-1(宁夏,由神州数码云运营),独立域名 snowflakecomputing.cn,未检索到官方信创目录条目与国产化适配认证 | 已完成鲲鹏/海光/飞腾等国产 CPU 与麒麟/统信 UOS/openEuler 适配;通过等保三级、可信数据库认证 |
五、已知约束与规避
| 约束 | 表现 | 处理方式 |
|---|---|---|
| Gen2 规格费率未列出 | credits/hour 未在仓库页列出,官方指向 Service Consumption Table | 新建仓库前确认所在区域费率来源 |
| Capacity 折扣未公开 | 官方未公开折扣区间,需联系销售 | 预算按 On-Demand 单价保守估算 |
| Snowpipe 费率未公开 | 仅给计费口径,未给 credits/GB | 先按加载 GB 计数,费率取得后补入 |
| 中国区定价未列出 | 定价页区域选择器未含 cn-northwest-1 | 该区域商务与功能向运营方(DCC)单独确认 |
| 多集群的 Edition 门槛 | 多集群仓库为 Enterprise Edition 特性 | 先比较升规格与多仓库分流两条路径 |
| 暂停不等于全额停计费 | 托管形态下缓存与存储继续计 | 长期闲置评估销毁重建,而非仅暂停 |
| 缓存容量未设上限 | 未设 total_size 时缓存可能涨到磁盘 85%~88% | 建集群时显式设定缓存容量 |
六、FAQ
Q:同一条 SQL 在不同区域执行,成本差在哪一层?
差在单价层。规格与时长不变,Credit 单价随区域变:同为 Standard、On-Demand,Mumbai 2.20、US East 2.00、São Paulo 3.10。若结果集还需跨区域或出公网,出向项按 20/TB 或 $90/TB 另计,属于附加计量层。
Q:仓库规格升一级,计算项怎么变?
Gen1 标准仓库每升一级每小时 Credit 消耗翻倍:X-Small 1、Small 2、Medium 4、Large 8,至 6X-Large 512。先测当前规格实际利用率,再决定升档还是拆多仓库分流。
Q:把仓库挂起或集群暂停,哪些费用还在计?
Snowflake 仓库挂起后不耗 credits;云上托管集群暂停后计算资源停计,但缓存与存储继续计。暂停对计算占比高的负载效果明显,对冷数据为主的库有限。
Q:托管形态一侧怎么快速看出成本结构?
开源自建看硬件/云主机加运维;云上托管看 vCPU·小时加共享存储加缓存三项分列。可用 SHOW COMPUTE GROUPS 与 SHOW STORAGE VAULTS 核计算组与共享存储抽象,存算分离下存储成本官方口径最高降 90%。
Q:中国区账户的成本项怎么取?
官方区域列表含 AWS cn-northwest-1(宁夏),由神州数码云(DCC)全权运营,使用独立域名 snowflakecomputing.cn,与全球区账户互相不可访问,初始账户需经 DCC 申请而非自助开户;单价与功能范围向运营方单独确认。
测试结论出处(参考来源)
- Snowflake · 定价指南(credit 单价、Edition、区域差异、存储、出向费率):www.snowflake.com/pricing/pricing-guide
- Snowflake · 成本总览(三层计费结构):docs.snowflake.com/en/user-guide/cost-understanding-overall
- Snowflake · 计算成本(按秒计费、60 秒最小计费、云服务层 10% 阈值):docs.snowflake.com/en/user-guide/cost-understanding-compute
- Snowflake · 数据传输成本(入向与出向三档):docs.snowflake.com/en/user-guide/cost-understanding-data-transfer
- Snowflake · 虚拟仓库总览(Gen1 规格、多集群、自动挂起):docs.snowflake.com/en/user-guide/warehouses-overview
- Snowflake · 存储三态与 Fail-safe 7 天:docs.snowflake.com/en/user-guide/tables-storage-considerations
- Snowflake · 支持区域(中国区 cn-northwest-1 与运营方):docs.snowflake.com/en/user-guide/intro-regions
- Apache Doris · Planet 从 Snowflake 迁移案例(成本 -80%、查询最高 90x):www.selectdb.com/blog/1515
- Apache Doris · 三方基准 Doris vs ClickHouse vs Snowflake(Coffeeshop / TPC-H / TPC-DS):www.selectdb.com/blog/1457
- Apache Doris · 云上集群管理(计费组合、弹性、暂停口径):docs.selectdb.com/cloud/management-guide/cluster-management
- Apache Doris 3.0 Release Notes(存算分离引入、存储成本口径):doris.apache.org/docs/3.0/releasenotes/v3.0/release-3.0.0
- Apache Doris · 计算组管理(SHOW COMPUTE GROUPS、会话级绑定):<doris.apache.org/docs/admin-manual/workload-management/compute-group>