<budget_name>!GET_BUDGET_SCOPE

返回已添加到 自定义预算 的资源和标签。帮助确定预算跟踪了哪些资源消耗。

该列表不包括:

  • 自动添加的对象(例如,由 Snowflake Native App 创建和拥有的计算池和仓库)。

  • 在预算中添加了标签时添加的对象。

语法

<budget_name>!GET_BUDGET_SCOPE()

返回

该方法返回一个具有以下键的 JSON 对象:

resource_tags

已添加到预算的资源标签。如果资源带有这些标签,则属于预算。包含以下字段:

operator

用于资源标签的匹配逻辑。可以是以下值之一:

  • UNION:选择使用 时默认使用的角色和仓库。如果使用 tags 数组中的 任意 标签值对标记了某个资源,则该资源将包含在预算中。

  • INTERSECTION:选择使用 时默认使用的角色和仓库。 要将资源包含在预算中,则必须使用 tags 数组中的 所有 标签值对对资源进行标记:

tags

标签对象数组,每个标签对象都包含以下字段:

tagId

标签的内部标识符。

tagDatabase

包含标签的数据库。

tagSchema

包含标签的架构。

tagName

标签的名称。

tagValues

与标签关联的标签值数组。

resources

已直接添加到预算的资源数组。各对象包含以下字段:

resourceId

资源的内部标识符。

resourceName

资源的名称。

resourceDomain

资源的域(例如,WAREHOUSEDATABASETABLE)。

schemaName

包含资源的架构。

databaseName

包含资源的数据库。

访问控制要求

查看自定义预算的结果需要以下最低权限和角色:

  • 预算实例的 ADMIN 实例角色

  • 对包含预算实例的数据库和架构的 USAGE 权限。

有关更多信息,请参阅 Budgets 角色和权限

使用说明

  • 此方法只能在 自定义预算 实例上调用。

  • 调用此方法不会返回对象。因此,您无法使用方法链来调用此方法返回值上的另一个方法。相反,应在单独 SQL 语句中调用每个方法。

示例

获取已添加到 budget_db.budget_schema.my_budget 预算的所有资源与标签:

CALL budget_db.budget_schema.my_budget!GET_BUDGET_SCOPE();