使用资源监视器

资源监视器 可帮助控制成本,并避免因运行仓库而导致的意外 Credit 使用量。虚拟仓库 在运行时会使用 Snowflake Credit。您可以使用资源监视器来监控虚拟仓库以及支持这些仓库所需的云服务的 Credit 使用量。您还可以设置资源监视器,以便在用户管理的虚拟仓库 Credit 使用量达到限额时暂停该仓库。

所用 Credit 数量取决于仓库的大小及其运行时间。有关仓库 Credit 使用量的更多信息,请参阅 虚拟仓库 Credit 使用量

可为指定时间间隔或日期范围设置 Credit 使用量限制。在达到限制和/或指定阈值时,资源监视器可以触发各种操作,例如发送警报通知和/或暂停用户管理的仓库。

仅具有 ACCOUNTADMIN 角色的用户可以创建资源监视器,但账户管理员可向其他角色授予权限,以允许其他用户查看和修改资源监视器。

本主题内容:

资源监视器属性

资源监视器是 Snowflake 中的一类对象,包含以下属性。

Credit 配额

credit 配额指定在特定频率间隔内分配给监视器的 Snowflake credit 数量。可指定任意数字。

此外,Snowflake 还会跟踪分配给监控器的所有仓库在指定频率间隔内的*已用 credit/配额*。达到指定时间间隔后,此数字会重置为 0

用户管理的虚拟仓库及云服务使用的虚拟仓库所用 credit 会计入 credit 配额。

例如,资源监视器的限额设为 1000 个 credit,如果仓库在指定时间间隔或日期范围内消耗了 700 个 credit,云服务消耗了 300 个 credit,则会触发警报。

备注

资源监视器限额不会考虑云服务每日 10% 的调整。Snowflake 使用云服务层的所有 credit 用量,来计算是否已达到限额,即使此类使用从不会计费。有关如何计算云服务 credit 和调整的更多信息,请参阅 了解云服务使用计费

有关如何查看云服务 credit 使用量的说明,请参阅 了解计算成本

监视器类型

此属性指定资源监视器用于监控您的账户,还是用于监控特定一组个别仓库:

  • 账户监视器 监控账户中所有仓库的 Credit 使用量。一个账户只能有一个账户监视器。

  • 仓库监视器 监控为资源监视器分配的仓库的 Credit 使用量。一个账户可以有多个仓库监视器。

    可以为一个仓库监视器分配一个或多个仓库,但只能为每个仓库分配给一个资源监视器。

如未设置此属性,资源监视器不会监视任何 credit 使用量。只会保持休眠状态。

有关更多信息,请参阅 资源监视器的分配

计划

根据资源监视器的默认计划,它会立即开始监视 credit 使用量,并在每个日历月的月初(即标准 Snowflake 计费周期开始时)将已用 credit 重置为 0

但您可以选择使用以下属性来为资源监视器自定义计划:

频率:

相对于 指定开始日期,已用 credit 的重置间隔。

支持的值:

  • 每天

  • 每周

  • 每月

  • 每年

  • 从不(已用 credit 永不重置;所分配仓库继续使用 credit,直至达到 credit 限额)

开始时间:

资源监视器开始监视所分配仓库的日期和时间(即时间戳)。

支持的值:

  • 立即(即当前时间戳)

  • 稍后(即任意未来时间戳)

此外,Snowflake 使用此日期按照指定频率确定何时重置已用 credit。但请注意,无论起始日期和时间中指定什么时间,资源监视器都会在 12:00 AM UTC 重置。例如,如果起始时间为 2019 年 7 月 15 日(星期一)8:00 AM:

  • 频率 = 每月:已用 credit 的每次重置时间均为次月 15 日的 12:00 AM UTC。

  • 频率 = 每周:已用 credit 的每次重置时间均为下周一的 12:00 AM UTC。

请注意,如果您将一个月的最后一天指定为起始日期,Snowflake 会在所有后续月份的最后一天重置已用 credit,而不考虑该月共有多少天。例如,如果您将起始日期设置为 1 月 31 日,Snowflake 后续会在 2 月 28 日(闰年为 2 月 29 日)、3 月 31 日、4 月 30 日等日期重置资源监视器的已用 credit。

结束时间:

Snowflake 暂停与资源监视器关联的仓库的日期和时间(即时间戳),无论所用 credit 是否达到为资源监视器操作定义的任何阈值(请参阅本主题下一节内容)。

支持的值:任意未来时间戳。

请注意,此属性不常用。

重要

如果您选择自定义资源监视器计划,则计划的频率是 相对于 指定起始日期的,这与默认计划不同。

另外,如果您指定频率,则还必须指定起始日期和时间,反之亦然(即:必须同时设置这两者)。

操作

也称为 触发器,每项操作指定一个阈值(形式为资源监视器 credit 配额的百分比),以及在指定时间间隔内达到阈值时应执行的操作。请注意,操作支持的阈值大于 100

资源监视器支持以下操作:

通知并暂停:

在仓库执行的所有语句完成后,发送通知并暂停所分配的全部仓库。

立即通知并暂停:

发送通知并立即暂停所分配的全部仓库,这将取消仓库当时正在执行的任何语句。

通知:

不对仓库执行任何操作,但发送通知。

通知将发送给所有已启用通知的账户管理员。针对监控仓库的资源监视器的电子邮件通知也会发送到任何 已启用接收这些通知的非管理员用户

备注

非管理员用户只能接收针对 仓库 监视器的电子邮件通知。

每个资源监视器均可执行以下操作:

  • 一项 暂停 操作。

  • 一项 立即暂停 操作。

  • 最多五项 通知 操作。

备注

资源监视器必须至少定义一项操作;如果未定义任何操作,则在所用 credit 达到阈值时,不会发生任何事情。

资源监视器的分配

可以在账户级别设置单个监视器,以控制账户中所有仓库的 credit 使用量。

此外,可以将一个或多个仓库分配到资源监视器,从而控制所分配的每个仓库的 Credit 使用量。但请注意,仓库只能分配给账户级别以下的个别资源监视器。

在下图展示的场景中,在账户级别设置了一个资源监视器,并将各个仓库分配给另外两个资源监视器:

仓库与资源监视器的关系

根据此图:

  • 整个账户的 credit 配额是在相应时间间隔(月、周等)期间为 5000,由资源监视器 1 控制;如果在此时间间隔内达到此配额,则会对全部五个仓库强制执行为资源监视器定义的操作(暂停立即暂停 等)。

  • 仓库 3 在此时间间隔内最多可以使用 1000 个 credit。

  • 在此时间间隔内,仓库 4 和仓库 5 最多可以使用总计 2500 个 credit。

请注意,如果先达到账户的配额,则仓库 3、4、5 实际消耗的 credit 可能会小于其配额。

重要

  • 账户级别的资源监视器不会覆盖单个仓库的资源监视器分配。如果账户资源监视器或仓库资源监视器达到其定义的阈值,并且已定义暂停操作,则仓库将暂停。

  • 账户级别的资源监视器不控制 Snowflake 为无服务器功能(例如 Snowpipe、自动重聚类和物化视图)提供的计算资源的 credit 使用量。有关完整的功能列表,请参阅 无服务器功能

  • 仓库级别的资源监视器可以监视云服务的 credit 使用量,但不能暂停其使用。在虚拟仓库暂停后,针对该仓库运行的后续查询仍可能会导致额外的云服务费用。有关云服务的 Credit 使用量的更多信息,请参阅 云服务 Credit 使用量

仓库暂停与恢复

资源监视器的已用 credit 体现了在指定时间间隔内,所分配的全部仓库以及在同一时间间隔内用于支持这些仓库的云服务所使用的 credit 总和。如果监视器定义了 暂停立即暂停 操作,并且所用 credit 达到该操作的阈值,则分配给该监视器的任何仓库都将暂停,并且除非满足以下条件之一,否则无法恢复:

  • 下一个时间间隔(如有)的起始时间取决于监视器的起始日期。

  • 监视器的 credit 配额提高。

  • 暂停操作的 credit 阈值提高。

  • 仓库不再分配给该监视器。

  • 监视器被丢弃。

小技巧

资源监视器并非旨在严格控制每小时的使用;而是旨在跟踪和控制每个时间间隔(日、周、月等)的 credit 使用量。此外,其目的并非对 credit 使用量设置精准限额(即细化至 1 个 credit)。例如,达到资源监视器的 credit 配额阈值时,即使操作是 立即暂停,所分配的仓库也可能需要一些时间才能暂停,因此会使用额外的 credit。

如果您希望严格执行配额,建议执行以下操作:

  • 利用配额阈值中的缓冲区进行操作(例如,将阈值设置为 90%,而不是 100%)。

    这将有助于确保 credit 使用量不超过配额。

  • 要更严格地控​​制各个仓库的 credit 使用量,请仅为每个资源监视器分配一个仓库。

    如果将多个仓库分配给同一资源监视器,它们会共享相同的配额阈值,这可能会导致一个仓库的 credit 使用量影响所分配的其他仓库。

资源监视器通知

当资源监视器达到 操作 阈值时,它会生成类似于下面这样的通知:

Resource Monitor MY_ACCOUNT_MONITOR has reached 50% of its MONTHLY
quota of 500 credits which has triggered a <action> action.

<action> 是以下操作之一:

  • NOTIFY

  • SUSPEND

  • SUSPEND_IMMEDIATE

通知行为取决于资源监视器的 类型,以及是否为个别用户 启用了 通知。通知的发送方式如下:

  • 对于 仓库 监视器,将向以下用户发送通知:

    • 已启用资源监视器通知的所有账户管理员。

    • 资源监视器通知列表中的非管理员用户。

  • 对于 账户 监视器,将向以下用户发送通知:

    • 具有资源监视器的 OWNERSHIP 权限的账户管理员(如已启用通知)。

    • 已使用 Classic Console 启用通知的所有账户管理员。

    备注

    非管理员用户不能添加到 账户 监视器的通知列表中。

重要

资源监视器通知可以通过电子邮件发送,也可以在 Classic Console 中发送,但默认情况下处于禁用状态。在发送通知之前,您必须设置通知。对于没有 ACCOUNTADMIN 角色的用户,只能向其发送电子邮件通知。

要启用通知,请参阅 启用通知接收

适用于资源监视器的 DDL

Snowflake 提供以下 DDL 命令,用于创建和使用/管理资源监视器:

此外,以下 DDL 命令可用于将资源监视器分配给仓库,并查看仓库是否已分配给监视器:

资源监视器的访问控制权限

默认情况下,资源监视器只能由账户管理员创建,因此只能由其查看和维护。

但是,已获授特定资源监视器以下权限的角色可按需使用 SQL,来查看和修改资源监视器:

  • MONITOR

  • MODIFY

有关更多信息,请参阅 访问控制权限GRANT <privileges>

请注意,只有账户管理员才能通过 Classic Console 查看和管理资源监视器。

启用通知接收

您必须首先在 Web 界面中启用通知并验证您的电子邮件,然后才能接收来自资源监视器的任何通知。

Snowsight:

若要启用通知,请按照下列步骤操作:

  1. 如果您尚未验证电子邮件地址,请进行验证。有关如何验证电子邮件地址的说明,请参阅 验证电子邮件地址

  2. 选择您的用户名,然后选择 Profile

  3. 对于 Notifications,选择 Enable notifications from resource monitors

    备注

    • 如果您尚未验证电子邮件地址,则在验证电子邮件之前,Notifications 选项不可用。

    • Notifications 中,Enable notifications from resource monitors 选项仅在以下情况下适用于具有 ACCOUNTADMIN 角色的用户:

      • 如果为账户分配了资源监视器,且账户管理员具有账户监视器的 OWNERSHIP 权限。

      • 如果账户中有仓库监视器。所有账户管理员都可以接收针对仓库监视器的通知。

Classic Console:

若要启用通知,请按照下列步骤操作:

  1. 如果您尚未验证电子邮件地址,请进行验证。有关如何验证电子邮件地址的说明,请参阅 在 Classic Console 中验证您的电子邮件地址

  2. 选择右上角您名称旁边的下拉菜单,然后选择 Preferences » Notifications

  3. 选择其中一个选项。

备注

已使用 Classic Console 启用通知接收的所有账户管理员都会接收到账户和仓库监视器的通知。

创建资源监视器

资源监视器可以通过 Web 界面或 SQL 创建;但只有账户管理员(即具有 ACCOUNTADMIN 角色的用户)才能创建资源监视器。

重要

必须 将至少一个仓库分配给资源监视器,或者在账户级别上设置监视器,才能让资源监视器开始监视/跟踪 credit 使用量:

  • 在 Web 界面中,您需要在创建时执行此操作。

  • 在 SQL 中,必须先创建资源监视器,然后作为单独的一个附加步骤执行 ALTER WAREHOUSE,为其分配一个或多个仓库。

此外,要在触发资源监视器操作时接收通知,您 必须 启用通知

创建具有默认计划的资源监视器

您可以使用 Web 界面或者 SQL 创建使用默认计划(即立即开始监视并在每个日历月的第一天重置)的资源监视器。

备注

仅具有 ACCOUNTADMIN 角色的用户可以创建资源监视器。

Snowsight:
  1. 登录到 Snowsight 并导航至 Admin » Cost Management

  2. 依次选择 Resource Monitors+ Resource Monitor

  3. 对于 Name,输入资源监视器的名称。

  4. 对于 Credit Quota,输入每个指定时间间隔的 Credit 数量。

  5. 选择 Monitor Type。选择 Account 以创建账户监视器,或者选择 Warehouse 以选择要监控的仓库。

  6. 对于 Actions,在选项旁输入阈值,以选择要启用的通知。您必须选择至少一个选项。

    选择 Add 以创建额外的通知。您最多可以指定 5 个通知操作。

Classic Console:
  1. 选择 Account Account 选项卡 » Resource Monitors » Create Resource Monitor

  2. 对于 Name,输入名称。

  3. 对于 Credit Quota,输入每个指定时间间隔的 Credit 数量。

  4. 选择 Monitor Level。选择 Account 以创建账户监视器,或者选择 Warehouse 以选择要监控的仓库。

  5. 在选项旁边输入阈值,以选择要启用的 Actions and Notifications。您必须选择至少一个选项。

    选择 +Add more notification thresholds 以创建额外的通知。您最多可以指定 5 个通知操作。

SQL:

在 SQL 中,此任务分两步执行:

  1. 执行 CREATE RESOURCE MONITOR 命令,但不指定任何计划属性。

  2. 执行 ALTER WAREHOUSE 语句,将仓库分配给资源监视器, 执行 ALTER ACCOUNT 语句,为账户设置资源监视器。

例如:

  • 创建一个立即开始监视的监视器,其 credit 在每个月的月初重置,并在已用 credit 达到 credit 配额的 100% 时暂停已分配的仓库:

    USE ROLE ACCOUNTADMIN;
    
    CREATE OR REPLACE RESOURCE MONITOR limit1 WITH CREDIT_QUOTA=1000
      TRIGGERS ON 100 PERCENT DO SUSPEND;
    
    ALTER WAREHOUSE wh1 SET RESOURCE_MONITOR = limit1;
    
    Copy

    SUSPEND 操作会等待当前正在执行的查询完成,然后再暂停仓库。查询可能在达到阈值之前开始,并在 SUSPEND 操作被触发之后完成。在这种情况下,即使在达到配额后,仓库仍会继续消耗配额。

  • 创建与第一个示例类似的监视器,但在 90% 时开始暂停,并在 100% 时立即暂停,以防止账户中的所有仓库在达到配额后使用 credit:

    USE ROLE ACCOUNTADMIN;
    
    CREATE OR REPLACE RESOURCE MONITOR limit1 WITH CREDIT_QUOTA=1000
      TRIGGERS ON 90 PERCENT DO SUSPEND
               ON 100 PERCENT DO SUSPEND_IMMEDIATE;
    
    ALTER WAREHOUSE wh1 SET RESOURCE_MONITOR = limit1;
    
    Copy

    在此示例中,当达到 Credit 配额的 90% 时,系统将会发送通知并暂停所分配的仓库。当前正在执行的查询完成,但资源监视器阻止仓库执行任何新查询。如果所分配的仓库达到 Credit 配额的 100%,则系统将会发送通知并立即暂停仓库,取消当前正在执行的所有查询。

  • 创建与第一个示例类似的监视器,但允许所分配的仓库超过配额 10%,此外包括两项通知操作,以在所用 credit 达到配额的一半和四分之三时,提醒账户管理员:

    USE ROLE ACCOUNTADMIN;
    
    CREATE OR REPLACE RESOURCE MONITOR limit1 WITH CREDIT_QUOTA=1000
       TRIGGERS ON 50 PERCENT DO NOTIFY
                ON 75 PERCENT DO NOTIFY
                ON 100 PERCENT DO SUSPEND
                ON 110 PERCENT DO SUSPEND_IMMEDIATE;
    
    ALTER WAREHOUSE wh1 SET RESOURCE_MONITOR = limit1;
    
    Copy

    在此示例中:

    • 在用量达到 50% 和 75% 时,系统将向所有启用通知的账户管理员发送警报通知,但不执行其他操作。

    • 在用量达到 100% 时,所分配的仓库将暂停。

    • 如果在用量达到 110% 时,仓库仍在运行,则立即暂停仓库。

创建具有自定义计划的资源监视器

您可以使用 Web 界面或 SQL 创建使用非默认计划的资源监视器。

备注

仅具有 ACCOUNTADMIN 角色的用户可以创建资源监视器。

完成以下步骤,以创建具有自定义计划的资源监视器:

Snowsight:
  1. 登录到 Snowsight 并导航至 Admin » Cost Management

  2. 依次选择 Resource Monitors+ Resource Monitor

  3. 对于 Name,输入资源监视器的名称。

  4. 对于 Credit Quota,输入每个指定时间间隔的 Credit 数量。

  5. 选择 Monitor Type。选择 Account 以创建账户监视器,或者选择 Warehouse 以选择要监控的仓库。

  6. 选择 Schedule » Customize,为指定时间间隔设置自定义计划。您可以跳过此步骤,以使用 默认计划

    您可以使用 Custom Start DateCustom End Date 设置自定义开始和结束日期,或使用 Range 选项卡指定一个日期范围。

    备注

    如果您选择在指定的日期和时间结束监控,则即便尚未达到 Credit 配额,所分配的全部仓库也将在此日期和时间暂停。在发生这种情况时,系统将发送一条通知,指出资源监视器已达到其配额的特定百分比,并已触发立即暂停操作。配额百分比体现了截至结束日期,当前时间间隔内已使用的 Credit 数量可能并不是您指定的阈值。

    您还可以自定义指定的监控时间间隔。选择 Resets,您可从以下定期时间间隔中选择重置 Credit 配额的时间间隔:

    • Monthly

    • Daily

    • Weekly

    • Yearly

    • Never

  7. 对于 Actions,在选项旁输入阈值,以选择要启用的通知。您必须选择至少一个选项。

    选择 Add 以创建额外的通知。您最多可以指定 5 个通知操作。

Classic Console:
  1. 选择 Account Account 选项卡 » Resource Monitors » Create Resource Monitor

  2. 对于 Name,输入资源监视器的名称。

  3. 对于 Credit Quota,输入每个指定时间间隔的 Credit 数量。

  4. 选择 Monitor Level。选择 Account 以创建账户监视器,或者选择 Warehouse 以选择要监控的仓库。

  5. 对于 Schedule,点击 Customize 链接,并按需指定以下一个或多个属性:

    • 立即启动监视器,或者在稍后的日期和时间启动监视器。

    • 根据指定频率重置已用 credit。

    • 在指定的日期和时间结束监控,或者从不结束监控。

      备注

      如果您选择在指定的日期和时间结束监控,则即便尚未达到 Credit 配额,所分配的全部仓库也将在此日期和时间暂停。在发生这种情况时,系统将发送一条通知,指出资源监视器已达到其配额的特定百分比,并已触发立即暂停操作。配额百分比体现了截至结束日期,当前时间间隔内已使用的 Credit 数量可能并不是您指定的阈值。

  6. 对于 Actions and Notifications,通过在选项旁边输入阈值来启用给定操作或通知。您必须选择至少一个选项。

    选择 +Add more notification thresholds 以创建额外的通知。您最多可以指定 5 个通知操作。

SQL:

执行 CREATE RESOURCE MONITOR 命令,使用以下一项或多项计划属性:

  • FREQUENCY

  • START_TIMESTAMP

  • END_TIMESTAMP

例如:

  • 要创建立即启动(基于当前时间戳)、每月同一天重置、无结束日期或时间,并在已用 credit 达到配额的 100% 时暂停所分配仓库的账户级别资源监视器,请执行以下操作:

    USE ROLE ACCOUNTADMIN;
    
    CREATE OR REPLACE RESOURCE MONITOR limit1 WITH CREDIT_QUOTA=1000
        FREQUENCY = MONTHLY
        START_TIMESTAMP = IMMEDIATELY
        TRIGGERS ON 100 PERCENT DO SUSPEND;
    
    ALTER WAREHOUSE wh1 SET RESOURCE_MONITOR = limit1;
    
    Copy
  • 要创建在未来特定日期和时间启动、每周同一天重置、无结束日期或时间,并在两个所分配仓库上以不同阈值执行两个不同暂停操作的资源监视器,请执行以下操作:

    USE ROLE ACCOUNTADMIN;
    
    CREATE OR REPLACE RESOURCE MONITOR limit1 WITH CREDIT_QUOTA=2000
        FREQUENCY = WEEKLY
        START_TIMESTAMP = '2019-03-04 00:00 PST'
        TRIGGERS ON 80 PERCENT DO SUSPEND
                 ON 100 PERCENT DO SUSPEND_IMMEDIATE;
    
    ALTER WAREHOUSE wh1 SET RESOURCE_MONITOR = limit1;
    
    ALTER WAREHOUSE wh2 SET RESOURCE_MONITOR = limit1;
    
    Copy

备注

您不能将资源监视器的自定义计划更改回默认计划。为此,您必须删除监视器,并创建一个新的监视器。

修改资源监视器

您可以修改现有资源监视器的以下属性:

  • 增加或减少监视器的 credit。

  • 为监视器自定义计划(频率、开始时间戳和结束时间戳)。

  • 添加或移除操作,或者修改现有操作的阈值百分比。

  • 如果监视器正在监视您的账户,请将其改为监视单个仓库。

  • 如果监视器正在监视单个仓库:

    • 从列表中添加或移除仓库。

    • 将其改为监视您的账户。

备注

更改任何此类属性都不会影响监视器迄今为止已使用的 credit。所有更改仅影响保存更改后使用的 credit。

可通过 Web 界面或 SQL 修改资源监视器。

备注

要修改资源监视器的属性,需要具备以下权限:

  • 要修改资源监视器的 Credit 配额、计划或操作,用户必须使用具有资源监视器的 MODIFY 权限的角色。

  • 要将资源监视器的监视器类型从仓库修改为账户(或反之),用户必须使用 ACCOUNTADMIN 角色。

  • 要修改仓库级资源监视器的仓库列表,用户必须使用 ACCOUNTADMIN 角色。

Snowsight:

备注

您不能使用 Snowsight 将资源监视器类型从仓库更改为账户。请改用 SQL。请参阅 SQL 部分中的示例

  1. 登录到 Snowsight 并导航至 Admin » Cost Management

  2. 选择 Resource Monitors,然后选择一个资源监视器。

  3. 选择右上角的 More 菜单 (...)。选择 Edit

Classic Console:
  1. 选择 Account Account 选项卡 » Resource Monitors

  2. 选择一个资源监视器。

  3. 选择 Edit

SQL:
  • 要更改配额、自定义计划或添加/移除/修改操作,请执行 ALTER RESOURCE MONITOR 语句。

    例如,要将资源监视器的 Credit 配额 limit1 上调至 3000,请执行以下语句:

    ALTER RESOURCE MONITOR limit1 SET CREDIT_QUOTA=3000;
    
    Copy

    有关更多示例,请参阅 示例

  • 要更改监视器类型,请执行 ALTER WAREHOUSEALTER ACCOUNT 语句。

    例如,要更改当前监控仓库的资源监视器 my_rm 以监控账户 my_account,请执行以下步骤:

    1. 查找所有仓库资源监视器 my_rm 正在监控的所有仓库。检查 my_rmresource_monitor 列:

      SHOW WAREHOUSES;
      
      Copy

      返回以下结果:

      +--------+-----------+----------+---------+---------+--------+------------+------------+--------------+-------------+-----------+--------------+-----------+-------+-------------------------------+-------------------------------+-------------------------------+--------------+---------+------------------+---------+----------+--------+-----------+------------+--------+-----------------+
      | name   | state     | type     | size    | running | queued | is_default | is_current | auto_suspend | auto_resume | available | provisioning | quiescing | other | created_on                    | resumed_on                    | updated_on                    | owner        | comment | resource_monitor | actives | pendings | failed | suspended | uuid       | budget | owner_role_type |
      |--------+-----------+----------+---------+---------+--------+------------+------------+--------------+-------------+-----------+--------------+-----------+-------+-------------------------------+-------------------------------+-------------------------------+--------------+---------+------------------+---------+----------+--------+-----------+------------+--------+-----------------|
      | MY_WH1 | STARTED   | STANDARD | X-Small |       0 |      0 | N          | N          |          600 | true        |           |              |           |       | 2024-01-17 14:37:36.223 -0800 | 2024-01-17 14:37:36.325 -0800 | 2024-01-17 14:47:49.854 -0800 | MY_ROLE      |         | null             |       0 |        0 |      0 |         1 | 1222706972 | NULL   | ROLE            |
      | MY_WH2 | SUSPENDED | STANDARD | X-Small |       0 |      0 | N          | Y          |          600 | true        |           |              |           |       | 2023-12-20 13:50:50.972 -0800 | 2024-01-17 14:28:39.170 -0800 | 2024-01-17 14:37:57.560 -0800 | ACCOUNTADMIN |         | MY_RM            |       0 |        0 |      0 |         1 | 1222706948 | NULL   | ROLE            |
      | MY_WH3 | SUSPENDED | STANDARD | Small   |       0 |      0 | N          | N          |          600 | true        |           |              |           |       | 2024-01-17 14:26:26.911 -0800 | 2024-01-17 14:33:39.260 -0800 | 2024-01-17 14:38:31.192 -0800 | ACCOUNTADMIN |         | MY_RM            |       0 |        0 |      0 |         2 | 1222706960 | NULL   | ROLE            |
      +--------+-----------+----------+---------+---------+--------+------------+------------+--------------+-------------+-----------+--------------+-----------+-------+-------------------------------+-------------------------------+-------------------------------+--------------+---------+------------------+---------+----------+--------+-----------+------------+--------+-----------------+
      

      资源监视器 my_rm 正在监控 my_wh2my_wh3 这两个仓库。

    2. 通过执行以下语句,移除两个仓库的资源监视器:

      ALTER WAREHOUSE my_wh2 UNSET RESOURCE_MONITOR;
      
      ALTER WAREHOUSE my_wh3 UNSET RESOURCE_MONITOR;
      
      Copy
    3. 通过执行以下语句,更改资源监视器以监控账户:

      ALTER ACCOUNT my_account SET RESOURCE_MONITOR = my_rm;
      
      Copy

备注

如果资源监视器具有自定义计划,您无法将其更改回默认计划。为此,您必须删除监视器,并创建一个新的监视器。

向非管理员用户发送资源监视器通知

非管理员用户只能接收 仓库监视器 的电子邮件通知。每个非管理员用户都必须有一个经验证的电子邮件地址。您可以使用 CREATE RESOURCE MONITOR 或 ALTER RESOURCE MONITOR 命令,向仓库监视器添加最多五名非管理员用户。

例如,要将用户 user1user2 添加至仓库监视器 my_warehouse_rm,请执行以下语句:

ALTER RESOURCE MONITOR my_warehouse_rm
  SET NOTIFY_USERS = (USER1, USER2);
Copy

备注

如果通知列表中的任何用户没有经验证的电子邮件,该语句将失败。

有关更多信息,请参阅 ALTER RESOURCE MONITOR 主题中的 NOTIFY_USERS 参数使用说明

要在使用 SQL 创建资源监视器时,将非管理员用户添加到资源监视器的通知列表中,请参阅 CREATE RESOURCE MONITOR

为账户设置资源监视器

可通过 Web 界面或 SQL 为您的账户设置资源监视器。

备注

仅具有 ACCOUNTADMIN 角色的用户可设置资源监视器来监控账户。

Snowsight:

在创建资源监视器时,您可将监视器类型设置为账户。有关更多信息,请参阅 创建资源监视器

您不能使用 Snowsight 将资源监视器类型从仓库更改为账户。请改用 SQL。请参阅 SQL 部分中的示例

Classic Console:

在创建或修改资源监视器时,您可以将监视器类型设置为 Account

SQL:

在 SQL 中,此任务分两步执行:

  1. 使用 CREATE RESOURCE MONITOR 命令来创建资源监视器(如果尚不存在)。

    如果资源监视器确实存在,要更改仓库级别资源监视器以监控账户,请参阅 “修改资源监视器”部分中的示例

  2. 使用 ALTER ACCOUNT 命令,将您创建的资源监视器设置为您账户的监视器。

    例如,要将账户资源监视器设置为 my_account_rm,请执行以下语句:

    USE ROLE ACCOUNTADMIN;
    
    CREATE RESOURCE MONITOR my_account_rm WITH CREDIT_QUOTA=10000
      TRIGGERS ON 100 PERCENT DO SUSPEND;
    
    ALTER ACCOUNT SET RESOURCE_MONITOR = my_account_rm;
    
    Copy

要将现有资源监视器的监视器类型从仓库监视器更改为账户监视器,请参阅 “修改资源监视器”部分中的示例

要查看是否已为账户设置资源监视器,请使用 Web 界面或 SHOW RESOURCE MONITORS 命令。资源监视器的 LEVEL 列显示它是为账户设置的,还是为单独的仓库设置的。

重要

  • 账户级别的资源监视器仅控制账户中明确创建的虚拟仓库;不控制 Snowflake 为无服务器功能(例如 Snowpipe自动聚类物化视图)提供的仓库的 credit 使用量。有关完整的功能列表,请参阅 无服务器功能

  • 仓库级别的资源监视器可以监视云服务的 credit 使用量,但不能暂停其使用。监视器只能暂停由账户中创建的用户管理的虚拟仓库。在由用户管理的虚拟仓库暂停后,针对该仓库运行的后续查询仍可能会导致额外的云服务费用。有关云服务的 Credit 使用量的更多信息,请参阅 云服务 Credit 使用量

将仓库分配给资源监视器

可通过 Web 界面或 SQL 将仓库分配给现有资源监视器。

备注

只有具备 ACCOUNTADMIN 角色的用户可以将仓库分配给资源监视器。

Snowsight:
  1. 登录到 Snowsight 并导航至 Admin » Cost Management

  2. 选择 Resource Monitors,然后选择一个资源监视器。

  3. 选择右上角的 More 菜单 (...)。选择 Edit

  4. 如果 Monitor TypeAccount,请选择 Warehouse

  5. 选择 Warehouse,以选择要监控的仓库。

Classic Console:
  1. 选择 Account Account 选项卡 » Resource Monitors

  2. 选择一个资源监视器。

  3. 选择 Edit

  4. 如果尚未为监视器分配任何仓库,请选择 Monitor Level,然后选择 Warehouse

  5. 选择 Warehouse,然后选择要监控的仓库。

SQL:

使用 ALTER WAREHOUSE 命令,为资源监视器分配一个仓库。

例如,若要使用资源监视器 my_rm 监控仓库 my_wh,请执行以下语句:

ALTER WAREHOUSE my_wh SET RESOURCE_MONITOR = my_rm;
Copy

查看资源监视器

可通过 Web 界面或 SQL 查看资源监视器。

Snowsight:
  1. 登录到 Snowsight 并导航至 Admin » Cost Management

  2. 选择 Resource Monitors,查看您已获授 MODIFY 或 MONITOR 权限的角色对应的资源监视器列表。账户管理员用户可以查看所有资源监视器。

  3. 选择一个资源监视器即可查看有关资源监视器设置、当前 Credit 使用量以及具有资源监视器权限的角色列表的详细信息。

Classic Console:

备注

仅具有 ACCOUNTADMIN 角色的用户可以使用 Classic Console 查看资源监视器。

  1. 选择 Account Account 选项卡 » Resource Monitors

SQL:

使用 ACCOUNTADMIN 角色或已获授资源监视器 MONITOR 或 MODIFY 权限的角色,执行一条 SHOW RESOURCE MONITORS 语句。

此外,无论使用任何角色,您都可以执行 SHOW WAREHOUSES 语句,来查看该角色拥有的仓库(或者该角色已获授 USAGE 权限的仓库)。输出包括仓库分配到的资源监视器(如有)。

备注

对于已创建读取者账户的 提供商账户,Snowflake 提供了额外的视图,即 RESOURCE_MONITORS。此视图可用于查询提供商的读取者账户下的资源监视器使用情况。有关更多信息,请参阅 Account Usage

复制资源监视器

可以使用 复制或故障转移组 将资源监视器从源账户复制到目标账户。有关更多信息,请参阅 资源监视器复制

语言: 中文