通过预算监控 Credit 使用量

Budgets 支持对一组特定 Snowflake 对象的 Snowflake Credit 使用量进行账户级监控和通知。

Budgets 概览

预算定义 Snowflake 账户或一组自定义 Snowflake 对象的 计算成本 的每月支出限额。当预计会超过支出限制时,将发送通知。您可以将预算配置为将此通知发送到电子邮件地址列表、云服务(Amazon SNS、Azure 事件网格或 Google Cloud PubSub)提供的队列或第三方系统的 Webhook(例如 Slack、Microsoft Teams 或 PagerDuty)。

账户预算和自定义预算

账户预算 监控账户中所有 受支持对象 的支出。

您还可以创建 自定义预算,以监控一组特定的受支持对象的支出限额。

对于这两种类型的预算,您必须设置支出限额并指定您希望如何接收通知。

要开始在 Snowflake 中使用预算,请 激活账户预算

支出限额和时间间隔

支出限额以 Snowflake Credit 表示,仅用于警报和通知目的。支出限额的时间间隔设置为一个日历月。

时间间隔从每月第一天的 12:00AM UTC 开始,到每月最后一天的 11:59PM UTC 结束。如果预算在当月的第一天之后创建,则第一个监控时间间隔截止到当月最后一天,然后在下个月的第一天重置。

如果您在当月第一天之后激活 账户预算,则从当月初开始的数据会回填,并用于确定您是否会超出当月的支出限额。

如果您在当月第一天之后创建 自定义预算,则当月的历史数据 不会 回填。未来支出预测仅基于启用预算后几天内的 Credit 使用量。

备注

如果您在当月第一天之后创建自定义预算,则可能会超出第一个月的预算。在非整月的月份中,不会为自定义预算回填预算创建之前的 Credit 使用量,这可能会导致预测不正确。随后的几个月将根据支出历史记录正确预测 Credit 使用量。

受支持对象

受支持对象的列表中的每个对象都会影响账户预算的支出限额。对于自定义预算,您可以选择一组要监控的特定对象。将对象添加到自定义预算后,预算会监控对象的所有计算成本,包括后台维护操作和无服务器功能。例如,如果将表添加到自定义预算中,且表已启用自动聚类,则预算会监控自动聚类后台维护的 Credit 使用量。

预算可以监控以下 Snowflake 对象:

对象

监控成本

警报

无服务器警报由账户预算监控。要监控使用用户管理仓库执行的警报的 Credit 使用量,您必须将仓库添加到预算中。有关警报成本的更多信息,请参阅 了解警报的成本

应用程序 . (Snowflake Native Apps)

当您将 Snowflake Native App 添加到预算中时,所有消耗 credit 并由应用程序创建和拥有的对象都将自动添加到预算中。这包括应用程序拥有的仓库和 Snowpark Container Services 计算池。预算不会自动跟踪共享的仓库和计算池,但您可以手动添加它们。

您不能将应用程序创建和拥有的对象添加到单独的预算中。您可以添加共享到单独预算的仓库和计算池。

要确定仓库或计算池是否归应用程序所有,请检查以下内容:

  • 对于仓库,请运行 SHOW WAREHOUSES 命令。如果 owner_role_type 列中的值为 APPLICATION,则仓库归 Snowflake Native App 所有。

  • 对于计算池,请运行 SHOW COMPUTE POOLS 命令。如果 application 列中的值不是 NULL,则计算池归 Snowflake Native App 所有。

计算池

Snowpark Container Services 的计算池使用情况。有关更多信息,请参阅 计算池成本

数据库

在预算中添加数据库时,数据库包含的所有受支持对象也会自动添加。预算会监控以下对象和无服务器功能的 Credit 使用量:

  • 上述受支持的架构对象。

  • 辅助(副本)数据库的复制。

    备注

    复制或故障转移组中复制的辅助数据库的复制成本,只能由账户预算来监控。

物化视图

物化视图的后台维护。有关更多信息,请参阅 物化视图成本

架构

在预算中添加架构时,架构包含的所有受支持对象也会自动添加。如上所述,预算会监控架构对象的 Credit 使用量。

管道

使用 Snowpipe 加载数据的资源消耗。有关更多信息,请参阅 Snowpipe 成本

自动聚类搜索优化 的后台维护操作(如果已在表上启用)。

任务

无服务器任务由自定义预算监控。要监控使用用户管理仓库执行的任务的 Credit 使用量,您必须将仓库添加到预算中。有关更多信息,请参阅 任务成本

仓库

用于查询执行、Web 界面和其他功能(请参阅 虚拟仓库 Credit 使用量)、无服务器任务和 云服务计算 的计算资源。

支持的无服务器功能

预算监控预算中包含的受支持对象的无服务器功能 Credit 使用量。下表列出了用于监控 Credit 使用量的无服务器功能以及账户和自定义预算支持。

备注

无服务器功能的账户预算支持取决于 Account Usage METERING_HISTORY 视图 视图中服务类型的可用性。

无服务器功能

账户预算

自定义预算

对象

AI_SERVICES

AUTO_CLUSTERING

COPY_FILES

HYBRID_TABLE_REQUESTS

MATERIALIZED_VIEW

物化视图

PIPE

管道

QUERY_ACCELERATION

QUERY_ACCELERATION_READER

REPLICATION

数据库

SEARCH_OPTIMIZATION

SERVERLESS_ALERTS

警报

SERVERLESS_TASK

任务

SNOWPARK_CONTAINER_SERVICES

计算池

SNOWPIPE_STREAMING

WAREHOUSE_METERING

仓库

WAREHOUSE_METERING_READER

仓库

Budgets 通知

当根据时间序列预测,当前支出有望超过支出限额时,预算会发送每日警报通知。当预计支出比支出限额高出 10% 以上时,通知开始生效。

以下是通过电子邮件发送的通知示例:

Budgets 通知电子邮件示例

要接收自动警报通知,您必须在 激活账户预算并创建自定义预算 过程中执行以下操作:

  • 为预算设置支出限额。

  • 指定您希望如何接收有关预算的通知。

Budgets 角色和权限

要启用账户中的自定义角色来处理预算,您可以授予以下角色和权限。

用于管理账户预算的应用程序角色

您可以向账户中的自定义角色授予以下应用程序角色,以监控或管理账户预算:

应用程序角色

描述

BUDGET_VIEWER

支持角色查看预算使用量数据并列出预算中的资源。

BUDGET_ADMIN

允许角色激活或停用账户预算,以及修改预算的属性,包括支出限额、用于接收通知的电子邮件地址列表以及静音通知设置。

除应用程序角色外,还必须授予其他必要的权限,以使自定义角色能够监控或管理账户预算。有关更多信息,请参阅 所需的角色和权限

用于管理自定义预算的实例角色

每个自定义预算都有实例角色,您可以将其授予其他角色以查看或修改预算:

实例角色

描述

VIEWER

支持角色查看预算使用情况数据。

ADMIN

允许角色修改预算的属性,包括支出限额、要使用的通知集成、要接收通知的电子邮件地址列表、静音通知设置以及组中的对象。

除实例角色外,还必须授予其他必要的权限,以使自定义角色能够创建、监控或修改自定义预算。有关更多信息,请参阅 所需的角色和权限

所需的角色和权限

除应用程序或实例角色外,还必须向自定义角色授予以下权限,以监控或管理预算:

权限或角色

预算类型

创建

管理

监控

备注

USAGE_VIEWER

两者

Snowflake 数据库角色 USAGE_VIEWER 授予自定义角色。

USAGE

自定义

授予对包含自定义预算的数据库的 USAGE 权限。

USAGE

自定义

授予对包含自定义预算的架构的 USAGE 权限。

SNOWFLAKE.BUDGET_CREATOR

自定义

将此数据库角色授予自定义角色,使其能够创建自定义预算。

CREATE SNOWFLAKE.CORE.BUDGET

自定义

针对包含自定义预算的架构,授予此权限。

APPLYBUDGET

自定义

针对要添加到自定义预算或从中删除的每个对象,必须授予该权限。

USAGE

自定义

要从自定义预算中添加或删除架构对象,针对包含该对象的数据库和架构,必须授予该权限。

有关详细信息和示例,请参阅以下部分:

限制

以下是 Budgets 的限制:

  • BUDGET 类的实例无法 复制 到目标账户。

  • 一个账户最多可以包含 100 个自定义预算。

  • 目前,Budgets 不支持监控 混合表 成本。

语言: 中文