通过 Budgets 监控 Credit 使用量¶
Budgets 支持对一组特定 Snowflake 对象的 Snowflake Credit 使用量进行账户级监控和通知。
本主题内容:
Budgets 概览¶
预算定义 Snowflake 账户或一组自定义 Snowflake 对象的 计算成本 的每月支出限额。当预计会超出支出限额时,每日通知电子邮件将发送到指定用于接收预算通知的电子邮件地址。
账户预算和自定义预算¶
账户预算 监控账户中所有 受支持对象 的支出。要获取账户预算的通知,请设置支出限额并指定用于接收通知的电子邮件地址。
您还可以创建 自定义预算,以监控一组特定的受支持对象的支出限额。与账户预算一样,您必须设置支出限额和通知电子邮件地址才能接收通知电子邮件。
要开始在 Snowflake 中使用预算,请 激活账户预算。
支出限额和时间间隔¶
支出限额以 Snowflake Credit 表示,仅用于警报和通知目的。支出限额的时间间隔设置为一个日历月。
时间间隔从每月第一天的 12:00AM UTC 开始,到每月最后一天的 11:59PM UTC 结束。如果预算在当月的第一天之后创建,则第一个监控时间间隔截止到当月最后一天,然后在下个月的第一天重置。
如果您在当月第一天之后激活 账户预算,则从当月初开始的数据会回填,并用于确定您是否会超出当月的支出限额。
如果您在当月第一天之后创建 自定义预算,则当月的历史数据 不会 回填。未来支出预测仅基于启用预算后几天内的 Credit 使用量。
备注
如果您在当月第一天之后创建自定义预算,则可能会超出第一个月的预算。在非整月的月份中,不会为自定义预算回填预算创建之前的 Credit 使用量,这可能会导致预测不正确。随后的几个月将根据支出历史记录正确预测 Credit 使用量。
受支持对象¶
受支持对象的列表中的每个对象都会影响账户预算的支出限额。对于自定义预算,您可以选择一组要监控的特定对象。将对象添加到自定义预算后,预算会监控对象的所有计算成本,包括后台维护操作和无服务器功能。例如,如果将表添加到自定义预算中,且表已启用自动聚类,则预算会监控自动聚类后台维护的 Credit 使用量。
预算可以监控以下 Snowflake 对象:
对象 |
监控成本 |
---|---|
物化视图 |
物化视图的后台维护。有关更多信息,请参阅 物化视图成本。 |
管道 |
使用 Snowpipe 加载数据的资源消耗。有关更多信息,请参阅 Snowpipe 成本。 |
表 |
|
任务 |
无服务器任务由自定义预算监控。要监控使用用户管理仓库执行的任务的 Credit 使用量,您必须将仓库添加到预算中。有关更多信息,请参阅 任务成本。 |
架构 |
在预算中添加架构时,架构包含的所有受支持对象也会自动添加。如上所述,预算会监控架构对象的 Credit 使用量。 |
数据库 |
在预算中添加数据库时,数据库包含的所有受支持对象也会自动添加。预算会监控以下对象和无服务器功能的 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_TASK |
✔ |
✔ |
任务 |
SNOWPARK_CONTAINER_SERVICES |
✔ |
||
SNOWPIPE_STREAMING |
✔ |
✔ |
表 |
WAREHOUSE_METERING |
✔ |
✔ |
仓库 |
WAREHOUSE_METERING_READER |
✔ |
✔ |
仓库 |
Budgets 通知¶
当根据时间序列预测,当前支出有望超过支出限额时,预算会发送每日警报通知。要接收自动警报通知,您必须执行以下步骤:
为预算设置支出限额。
为预算设置电子邮件通知。
以下是通知电子邮件的示例:
您可以通过调用 SET_NOTIFICATION_MUTE_FLAG 方法为预算禁用电子邮件通知。
Budgets 角色和权限¶
要启用账户中的自定义角色来处理预算,您可以授予以下角色和权限。
用于管理账户预算的应用程序角色¶
您可以向账户中的自定义角色授予以下应用程序角色,以监控或管理账户预算:
应用程序角色 |
描述 |
---|---|
BUDGET_VIEWER |
支持角色查看预算使用量数据并列出预算中的资源。 |
BUDGET_ADMIN |
支持角色激活或停用账户预算,并修改预算的属性,包括支出限额、用于接收通知的电子邮件地址列表以及静音通知设置。 |
除应用程序角色外,还必须授予其他必要的权限,以使自定义角色能够监控或管理账户预算。有关更多信息,请参阅 所需的角色和权限。
用于管理自定义预算的实例角色¶
每个自定义预算都有实例角色,您可以将其授予其他角色以查看或修改预算:
实例角色 |
描述 |
---|---|
VIEWER |
支持角色查看预算使用情况数据。 |
ADMIN |
支持角色修改预算的属性,包括支出限额、用于接收通知的电子邮件地址列表、静音通知设置,以及组中的对象。 |
除实例角色外,还必须授予其他必要的权限,以使自定义角色能够创建、监控或修改自定义预算。有关更多信息,请参阅 所需的角色和权限。
所需的角色和权限¶
除应用程序或实例角色外,还必须向自定义角色授予以下权限,以监控或管理预算:
权限或角色 |
预算类型 |
创建 |
管理 |
监控 |
备注 |
---|---|---|---|---|---|
IMPORTED PRIVILEGES |
两者 |
✔ |
✔ |
✔ |
授予对 SNOWFLAKE 数据库的 IMPORTED PRIVILEGES 权限。 |
USAGE |
自定义 |
✔ |
✔ |
✔ |
授予对包含自定义预算的数据库的 USAGE 权限。 |
USAGE |
自定义 |
✔ |
✔ |
✔ |
授予对包含自定义预算的架构的 USAGE 权限。 |
SNOWFLAKE.BUDGET_CREATOR |
自定义 |
✔ |
将此数据库角色授予自定义角色,使其能够创建自定义预算。 |
||
CREATE SNOWFLAKE.CORE.BUDGET |
自定义 |
✔ |
针对包含自定义预算的架构,授予此权限。 |
||
APPLYBUDGET |
自定义 |
✔ |
针对要添加到自定义预算或从中删除的每个对象,必须授予该权限。 |
||
USAGE |
自定义 |
✔ |
要从自定义预算中添加或删除架构对象,针对包含该对象的数据库和架构,必须授予该权限。 |
有关详细信息和示例,请参阅以下部分:
限制¶
以下是 Budgets 的限制:
BUDGET 类的实例无法 复制 到目标账户。
一个账户最多可以包含 100 个自定义预算。
目前,Budgets 不支持监控 Snowpark Container Services 成本。
目前,Budgets 不支持监控 混合表 成本。