通过预算监控 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 成本

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

任务

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

仓库

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

支持的无服务器功能

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

备注

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

无服务器功能

账户预算

自定义预算

对象

AI_SERVICES

AUTO_CLUSTERING

COPY_FILES

DATA_QUALITY_MONITORING

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 通知电子邮件示例

备注

通过 Snowflake 的 Amazon Web Services (AWS) 部署,使用 AWS Simple Email Service (SES) 处理电子邮件通知。使用 AWS 发送的电子邮件内容可由 Snowflake 保留最多三十天,以便管理消息的传递。此期限过后,消息内容将会删除。

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

  • 为预算设置支出限额。

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

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 不支持监控 混合表 成本。

  • 以下账户级参数必须取消设置或设置为默认值:

    • AUTOCOMMIT 必须取消设置或设置为 TRUE.

      如果该参数设置为 FALSE,则激活预算可能会失败,或者可能无法正确跟踪使用情况。

    • TIMESTAMP_INPUT_FORMAT 必须取消设置或设置为 AUTO.

      如果此参数未设置为 AUTO,则可能无法正确跟踪使用情况。

    在激活预算之前,通过执行 SHOW PARAMETERS 命令 检查这些参数的值

    SHOW PARAMETERS LIKE 'AUTOCOMMIT' IN ACCOUNT;
    
    Copy
    SHOW PARAMETERS LIKE 'TIMESTAMP_INPUT_FORMAT' IN ACCOUNT;
    
    Copy

    备注

    您必须在账户级别设置这些参数。在较低级别(例如,在会话级别)设置参数不会影响激活预算或跟踪使用情况。

语言: 中文