Snowflake Intelligence 资源预算¶
资源预算可让您监控账户的 Snowflake Intelligence 支出,并在支出超过支出阈值时采取行动。这使您可以控制 Snowflake Intelligence 的成本,并自动采取措施,例如在支出超过配置的限制时撤销访问权限。通过资源预算,您可以控制整个 Snowflake Intelligence 服务在汇总级别上消耗的 Credit。
资源预算的运作方式¶
资源预算使用 Snowflake 基于标签的成本归因模型。您创建一个标签,将其应用于 Snowflake Intelligence 对象,然后将该标签与预算相关联。Snowflake 跟踪标记对象的 Credit 使用量,并定期根据预算限额评估支出。资源预算对于限制整个账户中 Snowflake Intelligence 的聚合支出非常有用。
Snowflake 通过以下流程强制执行资源预算:
创建标签
将标签应用于 Snowflake Intelligence 对象。
创建预算并指定要跟踪支出的标签。在创建预算时,您还可以设置每月支出限额(以 Credit 为单位)。
添加一个存储过程,该存储过程将在支出达到配置的预算阈值时执行。例如,您可以调用一个存储过程以在 80% 时发出警报,并调用另一个存储过程以在 100% 时撤销访问权限。
Snowflake 跟踪标记对象的 Credit 使用量。
当支出达到预算的配置阈值(例如 80% 或 100%)时,Snowflake 会执行为该阈值定义的存储过程。
Snowflake 会定期计算使用情况、评估阈值并触发任何配置的操作。预算超额后,最多可能需要 8 小时才能强制执行预算限制。
创建标签¶
创建标签以标识与 Snowflake Intelligence 对象关联的成本中心:
将标签应用于 Snowflake Intelligence 对象,将其与成本中心关联:
设置资源预算¶
您可以使用 Snowsight 或 SQL 创建预算并将其与 Snowflake Intelligence 对象关联。
登录 Snowsight。
在导航菜单中,选择 Admin » Cost management。
选择 Budgets。
选择 + Budget。
对于 Location to store,选择要在其中创建预算的数据库和架构名称。
对于 Name,请使用
my_budget。对于 Budget (credits per month),输入 10000 作为预算的支出限额。
若要缩短 预算刷新间隔 以便更严密地监控支出,请选择 Enable low latency budget。
对于 Threshold,输入 80 作为通知阈值。
对于 Notify,输入用于接收通知电子邮件的电子邮件地址。
选择 Next。
对于 Budget scope,将 Snowflake Intelligence 对象上的标签添加到资源预算中。
选择 Create。
在管理预算的架构中创建预算实例:
针对预算设置每月 Credit 支出限额,例如 10000:
将标签添加到预算中,以便 Snowflake 根据此预算跟踪标记对象的支出:
现在,Snowflake 会跟踪 si_instance_1 的 Credit 使用量,同时设置每月限额为 10,000 Credit 的 my_budget 预算。
配置阈值操作¶
您可以附加在支出达到特定阈值时执行的存储过程,这些阈值以支出限额的百分比表示,适用于每月预算期。有关更多信息,请参阅 预算的自定义操作。
发送通知¶
您可以在支出达到阈值时发送通知。有关更多信息,请参阅 预算通知。
设置用于发送通知的电子邮件地址:
设置通知阈值:
撤消访问权限¶
创建一个存储过程,用于撤销对 Snowflake Intelligence 的访问权限。在存储过程中,您可以限制对特定角色的访问权限,以撤销该角色的 USAGE。
重要
确保
role_name和用户无权通过其他角色访问 Snowflake Intelligence。有关正确配置角色和权限的指南,请参阅 用户权限和访问控制。设置自定义操作,在预算使用达到 100% 时阻止访问:
备注
您还可以使用自定义操作来发送通知,在预计支出超过预算限额时采取行动。有关更多信息,请参阅 预算的自定义操作。
处理支出限额的例外情况¶
在某些情况下,您需要在达到预算限制后恢复访问权限,例如在财报季或其他高峰期。您可以将阈值配置为超过 100%(最高可达 500%),以处理这些异常情况。
该工作流程假定,当支出达到预算阈值时,使用配置的存储过程撤销访问权限。在以下示例中,支出达到 100% 阈值后,访问权限已被撤销。管理员恢复用户子集并重新授予访问权限。当支出达到 200% 时,撤销过程会再次以硬停止形式运行。
创建存储过程以恢复对角色的访问权限:
使用恢复访问权限的存储过程配置超过 100% 的阈值。这使您可以提高例外期间的有效预算。当支出达到预算的 200% 时,将再次撤销访问权限:
恢复访问权限¶
为确保用户可以在下一个预算周期开始时再次访问 Snowflake Intelligence,请将以下存储过程设置为在预算周期重新启动时调用。
创建存储过程以恢复对角色的访问权限:
设置预算的周期开始操作:
根据预计支出设置警报¶
要根据预测支出而非实际支出接收警报或执行操作,可以将触发器类型设置为 PROJECTED。例如,要在预计消耗达到预算限制的 75% 时调用名为 alert_team 的过程,请运行以下命令:
列出自定义操作¶
要列出预算上配置的所有自定义操作,请使用 GET_CUSTOM_ACTIONS 方法:
有关更多信息,请参阅 预算的自定义操作。
监控使用情况¶
要查看每个 Snowflake Intelligence 对象的 Credit 使用量,请使用预算的使用情况报告方法:
输出包含以下列:
列
描述
服务类型
服务类别 (AI)
实体类型
对象类型 (SI)
实体 ID
Snowflake Intelligence 对象的唯一标识符
名称
显示 Snowflake Intelligence 对象的名称
使用的 Credit
指定时间段内使用的总 Credit
Credit 云
云服务 Credit 使用数量。
预算执行延迟¶
定期进行预算计算和阈值执行:
Snowflake 计算已标记 Snowflake Intelligence 对象的 Credit 使用量。
系统根据所有配置的阈值评估支出。
如果达到阈值,则执行关联的存储过程。
使用情况仪表板已更新为最新数据。
如果启用了低延迟预算,则预算将在超出预算后两小时内强制执行。否则,可能需要在超出预算后长达 8 小时才能执行。要缩短 :ref:` 刷新间隔 <label-budgets_refresh_interval>`,您可以更频繁地触发预算执行,例如每 60 分钟执行一次。
警告
在 Credit 被消耗和预算系统检测到超出阈值之间存在固有的延迟。在执行间隔期间,在执行操作之前,支出可能会超过配置的阈值。相应地规划阈值。例如,将警报设置为 80%,以便在触发 100% 操作之前给您做出响应的时间。
限制¶
以下限制适用于 Snowflake Intelligence 的资源预算:
仅限单团队资源: 资源预算适用于整个 Snowflake Intelligence 对象。
执行延迟: 预算执行按周期运行,在超出预算后最多可能需要 8 小时才能执行预算。在操作触发之前的时间间隔内,支出可能超过阈值。
基于角色的访问权限撤销: 要在阈值处撤销访问权限,必须为 Snowflake Intelligence 对象创建专用角色。目前尚不支持直接阻止对象访问的操作。
每月周期: 预算以月为周期运行。您无法配置资源预算期。
标签延迟: 当您更改对象的标签时,更改最多可能需要 8 个小时才能反映在使用标签的预算中。有关更多信息,请参阅 自定义预算。