Snowpipe 成本¶
借助 Snowpipe 的无服务器计算模型,用户可以启动任何大小的负载,而无需管理虚拟仓库。相反,Snowflake 提供并管理计算资源,根据当前的 Snowpipe 负载自动增加或缩小容量。
重要
以前,Snowpipe 成本有两个组成部分:用于加载数据的实际计算资源(按每秒/每核衡量)和每 1,000 个文件收费。
今后,Snowpipe 引入将采用新的简化模式进行计费:每 GB 按固定 Credit 量计费。与之前的定价模式相比,这一重大变化旨在让您更好地预测数据加载费用,从而简化成本估算。
对于文本文件(例如 CSV、JSON、XML),您需要根据其未压缩的大小付费。对于二进制文件(例如 Parquet、Avro、ORC),无论是否经过压缩,您都将根据其实际观测大小付费。
从 2025 年 8 月 1 日起,新的定价模式将自动适用于所有 Business Critical 和 VPS 版账户。在不久的将来,它还将在所有 Enterprise Edition 和 Standard Edition 中启用。在此之前,Enterprise Edition 和 Standard Edition 将继续根据现有定价模式进行计费。
有关更多信息,请参阅 Snowflake 服务使用量表。
资源使用和管理开销¶
在之前的定价模型中,当 Snowpipe 主动排队和处理数据文件时,Snowflake 以每秒/每核粒度跟踪账户中所有管道的负载资源使用量。每核 是指计算服务器中的物理 CPU 核心。然后,记录的使用情况会转换为熟悉的 Snowflake Credit,并列在账户的计费中。
备注
使用多线程客户端应用程序可以并行提交数据文件,从而启动其他服务器并在更短的时间内加载数据。然而,实际所需的总体计算时间与使用单线程客户端应用程序的时间相同,只是分布在更多内部 Snowpipe 服务器上。
有关数据文件大小和暂存频率的决策会影响 Snowpipe 的成本和性能。有关推荐的最佳实践,请参阅 连续数据加载 – 即 Snowpipe – 和文件大小调整。
除了资源使用之外,Snowpipe 的使用成本中还包含一项开销费用。无论是事件通知还是 REST API 调用导致了数据加载,都会收取此开销费用。此开销费用在结算单中显示为 Snowpipe 费用。
估计 Snowpipe 费用¶
Snowpipe 新增了每 GB 按固定 Credit 量计费,估计 Snowpipe 费用就很简单了。您可以简单地使用预期的数据量来计算预期成本。由于文本文件(例如 CSV、JSON、XML)是根据其未压缩的大小收费的,因此您需要知道文本文件的压缩率。然后,您可以通过检查相关 Account Usage 视图中的 BILLED_BYTES 列,对照实际使用情况验证这些计算结果。BILLED_BYTES 列将在即将发布的 2025_05 BCR 捆绑包中推出。
要了解新模式下特定工作负载的实际 Credit 使用量,建议通过执行一组典型的负载来进行实验。
查看数据加载历史记录和成本¶
账户管理员(具有 ACCOUNTADMIN 角色的用户)或授予 MONITOR USAGE 全局权限的角色的用户可以使用 Snowsight、 Classic Console 或 SQL 查看指定日期范围内计入 Snowflake 账户的 Credit。
偶尔,数据压缩和维护过程会消耗 Snowflake Credit。例如,返回的结果可能显示您使用了 0 BYTES_INSERTED 和 0 FILES_INSERTED 的 Credit。这表示您的数据未加载,但数据压缩和维护过程已使用了一些 Credit。
要查看您账户中 Snowpipe 数据加载的 Credit 账单,请执行以下操作:
- Snowsight:
选择 Admin » Cost Management。
- Classic Console:
- SQL:
查询以下任一内容:
/sql-reference/account-usage/pipe_usage_history`(在 :doc:/sql-reference/account-usage` 中)。
您可以对 PIPE_USAGE_HISTORY 视图运行以下查询。现在,您还可以通过
BYTES_BILLED
列使用查询来根据数据量验证成本。备注
您必须启用即将发布的 2025_05 BCR 捆绑包才能访问
BYTES_BILLED
列。查询:Snowpipe 成本历史记录(按天、按对象)
以下查询提供管道的完整列表,以及过去 30 天通过服务使用的 Credit 量(按天细分)。Credit 使用中的任何违规行为或持续高使用量都表明存在潜在问题,您应该对此进行调查。
SELECT TO_DATE(start_time) AS date, pipe_name, SUM(credits_used) AS credits_used, SUM(bytes_billed) AS bytes_billed_total -- Added for new pricing verification FROM snowflake.account_usage.pipe_usage_history WHERE start_time >= DATEADD(month,-1,CURRENT_TIMESTAMP()) GROUP BY 1,2 ORDER BY 3 DESC;查询:Snowpipe 历史记录和 m 天平均值
以下查询显示了去年按周分组的 Snowpipe 平均每日使用的 Credit。此查询可以帮助您识别一年中每日平均使用量的异常情况,以便您可以调查使用量的突然增长或意外变化。
WITH credits_by_day AS ( SELECT TO_DATE(start_time) AS date, SUM(credits_used) AS credits_used, SUM(bytes_billed) AS bytes_billed_total -- Added for new pricing verification FROM snowflake.account_usage.pipe_usage_history WHERE start_time >= DATEADD(year,-1,CURRENT_TIMESTAMP()) GROUP BY 1 ORDER BY 2 DESC) SELECT DATE_TRUNC('week',date), AVG(credits_used) AS avg_daily_credits, AVG(bytes_billed_total) AS avg_daily_bytes_billed -- Added for new pricing verification FROM credits_by_day GROUP BY 1 ORDER BY 1;
备注
资源监视器 提供对虚拟仓库 Credit 使用量的控制;但是,您不能使用它们来控制 Snowflake 提供的仓库的 Credit 使用量,包括 SNOWPIPE 仓库。