Snowpipe Streaming Classic 的成本¶
借助 Snowpipe Streaming 的无服务器计算模型,用户可以流式传输任何数据量,而无需管理虚拟仓库。相反,Snowflake 提供并管理计算资源,根据当前的 Snowpipe Streaming 负载自动增加或缩小容量。
对于 Snowpipe Streaming Classic,根据无服务器计算和活动客户端流引入使用的时间(以秒为单位)向账户收费。请注意以下几点:
- 文件迁移异步于流式引入发生。
- 文件迁移可能会被群集或其他 DML 操作抢先。
- 文件迁移可能并不总是发生,因此计算成本可能会降低。
- For Snowflake-managed Apache Iceberg™ tables, file migration operates similarly to Iceberg table maintenance to create new compacted Parquet files, if necessary.
For more information, see the “Serverless Feature Credit Table” in the Snowflake Service Consumption Table.
估算 Snowpipe Streaming 费用¶
考虑到可以区分 Snowpipe Streaming 负载的因素有很多,Snowflake 很难提供样本成本。记录大小、记录数量、数据类型等都会影响文件迁移的计算资源使用量。客户端费用仅取决于每秒有多少客户端主动将数据写入 Snowflake。
We suggest that you experiment by performing a typical streaming ingestion load to estimate future charges. To see a sample streaming ingestion experiment with estimated costs, see this blog post.
临时文件存储和计费
尽管 Snowpipe Streaming API 旨在直接将行写入 Snowflake 表中,无需用户明确暂存文件,但在 Snowpipe Streaming Classic 中,Snowflake 的内部流程使用透明的内部暂存区来临时缓冲数据。采用经典架构 SDK 的 Snowpipe Streaming 会生成中间文件并将其上传到该内部暂存区,然后再将其转换为 Snowflake 的原生文件格式。
Snowflake 会向您收取这些临时文件在内部暂存区使用的存储空间的费用。此存储成本与 Snowpipe Streaming 无服务器计算成本是分开的,并显示在 Snowflake 账单上的一般“存储成本”下。
这些临时文件在内部暂存区的保留期与目标表的数据保留时间直接关联(或者如果未设置特定表保留时间,则与账户级保留时间直接关联)。当这些文件超出定义的 Time Travel 窗口后,Snowflake 会自动将这些文件删除。通常情况下,这项删除操作发生在数据超出保留期后的一天内。用户无法直接访问或查看这些内部暂存区文件。
使用 Snowpipe Streaming 克隆表¶
当用户通过采用经典架构的 Snowpipe Streaming 克隆主动接收数据的表时,用户可能会发现存储成本更高。这一额外成本不是因为基础数据文件重复。Snowflake 执行 Zero-Copy Cloning。相反,这是因为传输中的数据(该数据由采用经典架构 SDK 的 Snowpipe Streaming 进行处理,并暂时存储在内部暂存区,但尚未完全提交到目标表中)需要对原始表和克隆表进行文件迁移。对临时文件的这项双重处理操作会增加文件迁移使用量,并导致更高的存储使用量。这一额外成本通常非常小,最多反映大约 5 分钟的临时文件,但如果系统在这些迁移操作中遇到延迟,则该额外成本可能会更大,且吞吐量非常高。这种重复会导致存储使用量增加。
相比之下,采用高性能架构的 Snowpipe Streaming 为主动接收流数据的表提供了真正的 Zero-Copy Cloning。在高性能架构中,克隆操作的行为类似于标准的 Snowflake 表克隆。这意味着只有在克隆操作之后写入的新数据才会使用额外的存储空间。克隆时传输中的数据不受这项双重迁移操作的影响。因此,您可以从流式表的经济高效的克隆中受益。
查看您账户的数据加载历史记录
账户管理员(具有 ACCOUNTADMIN 角色的用户)或具有被授予 MONITOR USAGE 全局权限的角色的用户可以使用 SQL 命令查看在指定日期范围内向您的 Snowflake 账户计费的 Credit。您可以使用以下视图查询迁移到 Snowflake 表的数据历史记录、使用 Snowpipe Streaming 将数据加载到 Snowflake 表所花费的时间以及使用的 Credit。
To view the total Snowpipe Streaming costs, including both compute and client costs, query the metering history when the SERVICE_TYPE is set to SNOWPIPE_STREAMING.
For more information about querying the total Snowpipe Streaming costs, see a SQL example.
要查看客户端引入和迁移计算的详细分类,您可以查询以下视图: