プログラムによるコスト異常の処理

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 にサインインしているとします。以下のコマンドを実行することで、2024年11月1日から2024年12月31日の間のアカウント prod_acct のコスト異常を特定できます。

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日を比較したときの消費量の変化の上位5アカウントを知りたい管理者は、組織アカウントまたは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日を比較したときの消費量の変化について、組織内の上位6ウェアハウスを見つけるには、組織アカウントまたはORGADMINが有効なアカウントにサインインして、以下を実行します。

CALL SNOWFLAKE.LOCAL.ANOMALY_INSIGHTS!GET_TOP_WAREHOUSES_ON_DATE(
  '2024-08-10', 6, NULL);
Copy
例: 現在のアカウントの上位ウェアハウスを識別する

2024年12月8日と2024年12月9日を比較したときの消費量の変化で、現在のアカウントの上位5ウェアハウスを見つけるには、以下を実行します。

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 の上位3ウェアハウスを見つけるには、組織アカウントまたは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を使用して、調査するウェアハウスを指定します。ウェアハウス ID は、 ANOMALY_INSIGHTS!GET_TOP_WAREHOUSES_ON_DATE メソッドを呼び出すか、 WAREHOUSE_METERING_HISTORY ビュー にクエリを実行することで見つけることができます。

例えば、ウェアハウスIDが 838 であるウェアハウスの消費量を調査するには、以下を実行して、2024年12月1日に最もクレジットを消費した上位6つのクエリをリストします。

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日の1時間ごとの消費量を返すには、次のように実行します。

CALL SNOWFLAKE.LOCAL.ANOMALY_INSIGHTS!GET_HOURLY_SPEND_FOR_ANOMALY('2024-10-17');
Copy