Programmatisch mit Kostenanomalien arbeiten

Sie können die ANOMALY_INSIGHTS-Klasse verwenden, um programmatisch Kostenanomalien zu identifizieren und zu untersuchen. Die vollständig qualifizierte Instanz, die Sie für die Arbeit mit Anomalien verwenden, lautet SNOWFLAKE.LOCAL.ANOMALY_INSIGHTS.

Sie müssen über die erforderlichen Berechtigungen verfügen, um die Klassenmethoden auszuführen.

Für einen Überblick über Kostenanomalien siehe Einführung in Kostenanomalien.

Kostenanomalien mit ANOMALY_INSIGHTS identifizieren

Snowflake erstellt eine Instanz der Klasse ANOMALY_INSIGHTS, die Sie verwenden können, um Kostenanomalien programmatisch zu identifizieren. Die Methode ANOMALY_INSIGHTS!GET_DAILY_CONSUMPTION_ANOMALY_DATA gibt Verbrauchsdaten für ein Konto oder eine Organisation zusammen mit einem booleschen Wert zurück, der angibt, ob dieser Verbrauch eine Kostenanomalie darstellt.

Kostenanomalien auf Organisationsebene identifizieren

Benutzer rufen die Methode GET_DAILY_CONSUMPTION_ANOMALY_DATA über das Organisationskonto oder ein aktiviertes ORGADMIN-Konto auf, um Kostenanomalien auf Organisationsebene zu identifizieren. Um sich auf Kostenanomalien auf Organisationsebene zu konzentrieren, übergibt der Benutzer NULL als Argument anstelle des Namens eines Kontos.

Beispiel: Kostenanomalie auf Organisationsebene

Um Kostenanomalien auf Organisationsebene zwischen dem 1. Januar 2024 und dem 31. März 2024 zu identifizieren, gehen Sie wie folgt vor:

  1. Melden Sie sich bei dem Organisationskonto oder bei einem aktivierten ORGADMIN-Konto an.

  2. Rufen Sie die Methode auf:

    CALL SNOWFLAKE.LOCAL.ANOMALY_INSIGHTS!GET_DAILY_CONSUMPTION_ANOMALY_DATA(
      '2024-01-01', '2024-03-31', NULL);
    
    Copy
  3. Suchen Sie in der Ausgabe nach Tagen, an denen der Wert der Spalte is_anomaly TRUE ist.

Kostenanomalien auf Kontoebene identifizieren

Sie können die Methode GET_DAILY_CONSUMPTION_ANOMALY_DATA verwenden, um Kostenanomalien auf Kontoebene für das aktuelle Konto oder, wenn Sie am Organisationskonto oder einem aktivierten ORGADMIN-Konto angemeldet sind, für jedes Konto in der Organisation zu identifizieren.

Beispiel: Kostenanomalien auf dem laufenden Konto

Um Kostenanomalien auf dem aktuellen Konto zwischen dem 1. Januar 2024 und dem 31. März 2024 zu identifizieren, rufen Sie die folgende Methode auf, wenn Sie auf dem Konto angemeldet sind.

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

Um die Ausgabe zur Identifizierung der Kostenanomalien zu verwenden, suchen Sie nach den Tagen, an denen der Wert der Spalte is_anomaly TRUE lautet.

Beispiel: Kostenanomalien auf einem anderen Konto

Wenn Sie bei dem Organisationskonto oder einem aktivierten ORGADMIN-Konto angemeldet sind und Kostenanomalien in einem anderen Konto identifizieren möchten, geben Sie den Namen des Kontos an, wenn Sie die Methode GET_DAILY_CONSUMPTION_ANOMALY_DATA aufrufen.

Nehmen wir zum Beispiel an, Sie sind bei dem Organisationskonto my_orgacct angemeldet. Sie können Kostenanomalien auf dem Konto prod_acct zwischen dem 1. November 2024 und dem 31. Dezember 2024 feststellen, indem Sie den folgenden Befehl ausführen:

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

Um die Ausgabe zur Identifizierung der Kostenanomalien zu verwenden, suchen Sie nach den Tagen, an denen der Wert der Spalte is_anomaly TRUE lautet.

Kostenanomalien mit ANOMALY_INSIGHTS untersuchen

Die Klasse ANOMALY_INSIGHTS bietet Methoden, mit denen Sie untersuchen können, warum eine Kostenanomalie aufgetreten ist. Diese Methoden ermöglichen es Ihnen, Folgendes aufzuschlüsseln:

Verbrauch auf Kontoebene

Rufen Sie die Methode ANOMALY_INSIGHTS!GET_TOP_ACCOUNTS_BY_CONSUMPTION auf, um eine Liste der Konten mit der höchsten Veränderung des Verbrauchs an einem bestimmten Tag abzurufen. Die Veränderung des Verbrauchs wird durch den Vergleich des Verbrauchs an einem bestimmten Tag mit dem Verbrauch am Vortag ermittelt. Dies ist nützlich, um Kostenanomalien auf Organisationsebene zu untersuchen.

Wenn Sie beispielsweise ein Administrator sind, der die fünf wichtigsten Konten in Bezug auf die Veränderung des Verbrauchs im Vergleich zwischen dem 14. Dezember 2024 und dem 15. Dezember 2024 wissen möchte, führen Sie Folgendes über das Organisationskonto oder ein aktiviertes ORGADMIN-Konto aus:

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

Verbrauch auf Warehouse-Ebene

Rufen Sie die Methode ANOMALY_INSIGHTS!GET_TOP_WAREHOUSES_ON_DATE auf, um eine Liste der Warehouses mit der höchsten Veränderung des Verbrauchs an einem bestimmten Tag abzurufen. Die Verbrauchsänderung wird ermittelt, indem der Verbrauch eines Warehouse an einem bestimmten Tag mit dem Verbrauch des Vortags verglichen wird. Sie können sich auf die wichtigsten Warehouses innerhalb eines bestimmten Kontos konzentrieren oder die wichtigsten Warehouses in der gesamten Organisation identifizieren.

Beispiel: Wichtigste Warehouses in der Organisation identifizieren

Um die sechs wichtigsten Warehouses in der Organisation in Bezug auf die Verbrauchsänderung im Vergleich zwischen dem 9. August 2024 und dem 10. August 2024 zu ermitteln, melden Sie sich bei dem Organisationskonto oder einem aktivierten ORGADMIN-Konto an und führen Sie Folgendes aus:

CALL SNOWFLAKE.LOCAL.ANOMALY_INSIGHTS!GET_TOP_WAREHOUSES_ON_DATE(
  '2024-08-10', 6, NULL);
Copy
Beispiel: Wichtigste Warehouses im aktuellen Konto identifizieren

Um die fünf wichtigsten Warehouses des aktuellen Kontos in Bezug auf die Verbrauchsänderung im Vergleich zwischen dem 8. Dezember 2024 und dem 9. Dezember 2024 zu finden, führen Sie Folgendes aus:

CALL SNOWFLAKE.LOCAL.ANOMALY_INSIGHTS!GET_TOP_WAREHOUSES_ON_DATE(
  '2024-12-09', 5, CURRENT_ACCOUNT_NAME());
Copy
Beispiel: Wichtigste Warehouses in einem anderen Konto identifizieren

Um die drei wichtigsten Warehouses im Konto my_acct in Bezug auf die Verbrauchsänderung im Vergleich zwischen dem 8. November 2024 und dem 9. November 2024 zu finden, melden Sie sich bei dem Organisationskonto oder einem aktivierten ORGADMIN-Konto an und führen Sie Folgendes aus:

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

Verbrauch auf Abfrageebene

Rufen Sie die Methode ANOMALY_INSIGHTS!GET_TOP_QUERIES_FROM_WAREHOUSE auf, um eine Liste der Abfragen abzurufen, die auf einem bestimmten Warehouse ausgeführt wurden, damit Sie feststellen können, welche Abfragen zu einem hohen Verbrauch geführt haben. Die zurückgegebenen Abfragen werden in der Reihenfolge des Verbrauchs aufgelistet, vom höchsten zum niedrigsten.

Sie verwenden eine Warehouse-ID, um anzugeben, welches Warehouse Sie untersuchen möchten. Sie finden die Warehouse-ID, indem Sie die Methode ANOMALY_INSIGHTS!GET_TOP_WAREHOUSES_ON_DATE aufrufen oder den Ansicht WAREHOUSE_METERING_HISTORY abfragen.

Um beispielsweise den Verbrauch eines Warehouse zu untersuchen, dessen Warehouse-ID 838 ist, führen Sie Folgendes aus, um die sechs Abfragen aufzulisten, die am 1. Dezember 2024 die meisten Credits verbraucht haben:

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

Stündlicher Verbrauch

Rufen Sie die Methode ANOMALY_INSIGHTS!GET_HOURLY_SPEND_FOR_ANOMALY auf, um den stündlichen Verbrauch für einen bestimmten Tag abzurufen. Sie können nur Daten für das Konto abrufen, bei dem Sie gerade angemeldet sind.

Um zum Beispiel den stündlichen Verbrauch am 17. Oktober 2024 zu ermitteln, führen Sie Folgendes aus:

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