本节摘要:虚拟仓库是一组无状态、按需启停、独立计费的计算资源。本节讲清它的三个"虚拟"属性,给出 XS 到 6XL 的完整档位阶梯(每档 credit 消耗翻倍),并解释纵向升档的适用边界——查询不是越大越快,数据扫描量不足时升档纯属烧钱。最后拆解 auto_suspend 与 auto_resume 这两个决定账单弹性成色的参数。
上一章把仓库定位成"查询处理层的实例"。现在把这个词掰开:
这三个属性合成一个结果:创建仓库是秒级、零风险、无数据迁移的操作。 你可以随时为一个新业务方开一个专属仓库,也可以为一次月末结算临时开一个特大号仓库,用完即删。
仓库档位用 T 恤尺码命名,规则简单到可以背下来:XS 为 1 credit/小时,每升一档翻一倍。完整阶梯如下:
| 档位 | credit/小时 | 典型用途 |
|---|---|---|
| X-Small | 1 | 轻量即席查询、开发测试 |
| Small | 2 | 常规 BI 报表 |
| Medium | 4 | 中型转换任务、较复杂查询 |
| Large | 8 | 大表聚合、批量 ELT |
| X-Large | 16 | 全量重算、大范围扫描 |
| 2X-Large | 32 | 超大表构建、月度重算 |
| 3X-Large | 64 | 数据湖级批量加载 |
| 4X-Large | 128 | 超大规模初始加载 |
| 5X-Large | 256 | 极端批量场景 |
| 6X-Large | 512 | 罕见的超巨型任务 |
credit 单价因云平台与区域而异(常见区间每 credit 约 2 到 3 美元量级),所以 XL 跑一小时大约是 XS 跑一小时费用的 16 倍。但注意关键洞察:升档提高的是并行度,单条查询的总扫描量不变。一小时的 XS 查询如果完美并行,理论上 3.75 分钟就能在 XL 上跑完(16 倍算力),总费用几乎一样。这就是"档位换时间"的本质——用同样的钱,买不同长度的墙钟时间。

空口说"翻倍"不如跑一把。下面的会话演示"同一查询、不同档位"的对照方法,以及自动挂起的计费表现:
-- 用 Small 档位跑一次全表聚合,记录耗时 ALTER WAREHOUSE demo_wh SET WAREHOUSE_SIZE = SMALL; SELECT /* 计时对照-S */ o.status, SUM(o.amount) FROM orders o GROUP BY o.status; -- 升到 Large 再跑同样查询(注意:先清结果缓存才能测出真实差异) ALTER SESSION SET USE_CACHED_RESULT = FALSE; ALTER WAREHOUSE demo_wh SET WAREHOUSE_SIZE = LARGE; SELECT /* 计时对照-L */ o.status, SUM(o.amount) FROM orders o GROUP BY o.status; -- 查看两条查询的实际耗时与扫描量 SELECT QUERY_TEXT, TOTAL_ELAPSED_TIME, PARTITIONS_SCANNED, PARTITIONS_TOTAL FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY WHERE QUERY_TEXT ILIKE '%计时对照%' ORDER BY START_TIME DESC;
预期结论分两种情况。如果表在 GB 量级:Large 与 Small 耗时接近(并行度给够了但活不够分),升档纯属浪费——这正是"小表用大仓库"的经典误区。如果表在 TB 量级且查询可并行:Large 耗时大约降到 Small 的四分之一附近,总 credit 消耗与 Small 相当甚至更低(省掉了排队与机器开销)。判断依据就在 PARTITIONS_SCANNED:扫描的微分区越多,升档收益越大。
仓库的成本公式其实是"档位 × 运行时长",时长一半由业务决定,另一半由两个参数决定:
CREATE OR REPLACE WAREHOUSE bi_wh WAREHOUSE_SIZE = LARGE AUTO_SUSPEND = 60 -- 空闲 60 秒挂起:BI 常用值 AUTO_RESUME = TRUE -- 查询到达自动唤醒 STATEMENT_TIMEOUT_IN_SECONDS = 3600; -- 单查询超时上限 1 小时
💡 关键直觉:评估仓库配置时别只看"每小时多少钱",看"每天跑完所有活总共多少钱"。一个挂起 20 小时的 XL,账单可能远低于 24 小时不眠不休的 Small——弹性红利全部藏在"时长"里。
单仓库的纵向调节讲完了。可当几十条查询同时涌向同一个仓库呢?下一节把镜头拉到横向——多集群。
以平台公开价格表为准,按云平台与区域列出;同档位在不同区域与不同云上的单价有差异,做跨云比价或预算上报时必须查自己账户所在区域的数值。查询历史与账单里显示的是 credit 数量,金额换算由账户所在区域的价格决定——先看 credit 用量做优化判断,金额只做预算语言。