以编程方式处理成本异常

您可以使用 ANOMALY_INSIGHTS 以编程方式识别和调查成本异常。用于处理异常的完全限定实例是 SNOWFLAKE.LOCAL.ANOMALY_INSIGHTS。

必须具有执行 类方法 所需的权限

有关成本异常的概述,请参阅 成本异常简介

使用 ANOMALY_INSIGHTS 识别成本异常

Snowflake 会创建 ANOMALY_INSIGHTS 类的实例,您可以使用该实例以编程方式识别成本异常。ANOMALY_INSIGHTS!GET_DAILY_CONSUMPTION_ANOMALY_DATA 方法会返回账户或组织的使用量数据,以及表示该使用量是否为成本异常的布尔值。

识别组织级成本异常

用户从组织账户或启用了 ORGADMIN 的账户中调用 GET_DAILY_CONSUMPTION_ANOMALY_DATA 方法,以识别 组织级成本异常。为了专注于组织级成本异常,用户将 NULL 作为实参传递,而不是账户名称。

示例:组织级成本异常

要识别 2024 年 1 月 1 日至 2024 年 3 月 31 日期间的组织级成本异常,请执行以下操作:

  1. 登录 组织账户 或启用了 ORGADMIN 的账户

  2. 调用该方法:

    CALL SNOWFLAKE.LOCAL.ANOMALY_INSIGHTS!GET_DAILY_CONSUMPTION_ANOMALY_DATA(
      '2024-01-01', '2024-03-31', NULL);
    
    Copy
  3. 在输出中,找出 is_anomaly 列的值为 TRUE 的日期。

识别账户级成本异常

您可以使用 GET_DAILY_CONSUMPTION_ANOMALY_DATA 方法来识别当前账户的账户级成本异常,如果您登录了组织账户或启用了 ORGADMIN 的账户,则可以识别组织中任何账户的账户级成本异常。

示例:当前账户中的成本异常

要识别当前账户在 2024 年 1 月 1 日至 2024 年 3 月 31 日之间的成本异常,请在登录账户后调用以下方法。

CALL SNOWFLAKE.LOCAL.ANOMALY_INSIGHTS!GET_DAILY_CONSUMPTION_ANOMALY_DATA(
  '2024-01-01', '2024-03-31', CURRENT_ACCOUNT_NAME() );
Copy

要使用输出来识别成本异常,请查找 is_anomaly 列的值为 TRUE 的日期。

示例:其他账户中的成本异常

如果您登录了组织账户或启用了 ORGADMIN 的账户,并且想要识别其他账户中的成本异常,请在调用 GET_DAILY_CONSUMPTION_ANOMALY_DATA 方法时指定账户的名称。

例如,假设您登录了组织账户 my_orgacct。您可以通过执行以下命令来识别账户 prod_acct 在 2024 年 11 月 1 日至 2024 年 12 月 31 日之间的成本异常:

CALL SNOWFLAKE.LOCAL.ANOMALY_INSIGHTS!GET_DAILY_CONSUMPTION_ANOMALY_DATA(
  '2024-11-01', '2024-12-31', 'prod_acct');
Copy

要使用输出来识别成本异常,请查找 is_anomaly 列的值为 TRUE 的日期。

使用 ANOMALY_INSIGHTS 调查成本异常

ANOMALY_INSIGHTS 类提供的方法可用于调查发生成本异常的原因。通过这些方法可以深入了解以下内容:

账户级使用量

调用 ANOMALY_INSIGHTS!GET_TOP_ACCOUNTS_BY_CONSUMPTION 方法来检索在给定日期内使用量变化最大的账户列表。通过将指定日期的使用量与前一天的使用量进行比较来确定使用量的变化。这对于调查组织级成本异常很有用。

例如,如果您是一位管理员,想在比较 2024 年 12 月 14 日和 2024 年 12 月 15 日时了解使用量变化排名前五的账户,则可以从组织账户或启用了 ORGADMIN 的账户中执行以下操作:

CALL SNOWFLAKE.LOCAL.ANOMALY_INSIGHTS!GET_TOP_ACCOUNTS_BY_CONSUMPTION('2024-12-15', 5);
Copy

仓库级使用量

调用 ANOMALY_INSIGHTS!GET_TOP_WAREHOUSES_ON_DATE 方法来检索在给定日期内使用量变化最大的仓库列表。通过将指定日期的仓库使用量与前一天的使用量进行比较来确定使用量的变化。您可以关注特定账户内的顶级仓库,也可以识别整个组织内的顶级仓库。

示例:识别组织中的顶级仓库

要在比较 2024 年 8 月 9 日和 2024 年 8 月 10 日时查找组织中使用量变化排名前六的仓库,请登录组织账户或启用了 ORGADMIN 的账户,并执行以下操作:

CALL SNOWFLAKE.LOCAL.ANOMALY_INSIGHTS!GET_TOP_WAREHOUSES_ON_DATE(
  '2024-08-10', 6, NULL);
Copy
示例:识别当前账户中的顶级仓库

要在比较 2024 年 12 月 8 日和 2024 年 12 月 9 日时查找当前账户中使用量变化排名前五的仓库,请执行以下操作:

CALL SNOWFLAKE.LOCAL.ANOMALY_INSIGHTS!GET_TOP_WAREHOUSES_ON_DATE(
  '2024-12-09', 5, CURRENT_ACCOUNT_NAME());
Copy
示例:识别其他账户中的顶级仓库

要在比较 2024 年 11 月 8 日和 2024 年 11 月 9 日时查找账户 my_acct 中使用量变化排名前三的仓库,请登录组织账户或启用了 ORGADMIN 的账户,并执行以下操作:

CALL SNOWFLAKE.LOCAL.ANOMALY_INSIGHTS!GET_TOP_WAREHOUSES_ON_DATE(
  '2024-11-09', 5, 'my_acct');
Copy

查询级使用量

调用 ANOMALY_INSIGHTS!GET_TOP_QUERIES_FROM_WAREHOUSE 方法来检索在特定仓库上运行的查询列表,这样您就可以识别哪些查询导致了高使用量。返回的查询按使用量从高到低的顺序列出。

您可以使用仓库 ID 来指定要调查的仓库。您可以通过调用 ANOMALY_INSIGHTS!GET_TOP_WAREHOUSES_ON_DATE 方法或查询 WAREHOUSE_METERING_HISTORY 视图 来找到仓库 ID。

例如,要调查仓库 ID 为 838 的仓库的使用量,请执行以下操作,以列出 2024 年 12 月 1 日使用 credit 最多的前六个查询:

CALL SNOWFLAKE.LOCAL.ANOMALY_INSIGHTS!GET_TOP_QUERIES_FROM_WAREHOUSE(838, '2024-12-01', 6);
Copy

每小时使用量

调用 ANOMALY_INSIGHTS!GET_HOURLY_SPEND_FOR_ANOMALY 方法来检索给定日期的每小时使用量。您只能检索当前登录的账户的数据。

例如,要返回 2024 年 10 月 17 日的每小时使用量,请执行以下操作:

CALL SNOWFLAKE.LOCAL.ANOMALY_INSIGHTS!GET_HOURLY_SPEND_FOR_ANOMALY('2024-10-17');
Copy
语言: 中文