Monitoring mit ACCOUNT_USAGE

Snowflake-Management, Governance & Zusammenarbeit

Emily Melhuish

Technical Curriculum Developer, Snowflake

Das Monitoring-Problem

  • Welche Warehouses kosteten letzten Monat am meisten?
  • Gab es ausufernde Queries, die man hätte abfangen sollen?
  • Liegt der Storage im Budget?
  • Gab es ungewöhnliche Login-Muster?

ACCOUNT_USAGE beantwortet diese Fragen

Kostenkontroll-Framework.png

Snowflake-Management, Governance & Zusammenarbeit

Was ist ACCOUNT_USAGE?

  • Ein Schema in der Systemdatenbank SNOWFLAKE
  • Enthält Views mit historischen Account-Daten
  • Latenz bis zu 3 Stunden
  • Meiste Views behalten Daten 365 Tage

Account-Übersicht.png

Snowflake-Management, Governance & Zusammenarbeit

ACCOUNT_USAGE vs INFORMATION_SCHEMA

 

Feature ACCOUNT_USAGE INFORMATION_SCHEMA
Scope Verlauf des gesamten Accounts, alle Datenbanken Aktueller Zustand deiner Datenbank
Data latency Bis zu 3 Stunden Niedrige Latenz
Retention Bis zu 365 Tage Bis zu 6 Monate (je nach View)
Dropped objects Enthalten Nicht enthalten
Primary use case Historisches Audit und Kostenanalyse Aktueller Zustand und Metadaten
Snowflake-Management, Governance & Zusammenarbeit

WAREHOUSE_METERING_HISTORY

  • Beantwortet, welche Warehouses die meisten Credits verbraucht haben
SELECT warehouse_name,
       SUM(credits_used) AS total_credits
FROM SNOWFLAKE.ACCOUNT_USAGE.WAREHOUSE_METERING_HISTORY
WHERE start_time >= DATEADD('day', -30, CURRENT_TIMESTAMP())
GROUP BY warehouse_name
ORDER BY total_credits DESC;
Snowflake-Management, Governance & Zusammenarbeit

QUERY_HISTORY

  • Zeichnet jede Query im Account auf
    SELECT query_text,
         warehouse_name,
         execution_time,
         bytes_scanned
    FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY
    WHERE start_time >= DATEADD('day', -7, CURRENT_TIMESTAMP())
    ORDER BY execution_time DESC
    LIMIT 10;
    
Snowflake-Management, Governance & Zusammenarbeit

STORAGE_USAGE

  • Verfolgt, wie viel Storage der Account nutzt
    • aktive und Fail-safe-Speicherung
      SELECT usage_date,
         ROUND(storage_bytes / POWER(1024, 3), 2) AS storage_gb,
         ROUND(failsafe_bytes / POWER(1024, 3), 2) AS failsafe_gb
      FROM SNOWFLAKE.ACCOUNT_USAGE.STORAGE_USAGE
      ORDER BY usage_date DESC
      LIMIT 30;
      
Snowflake-Management, Governance & Zusammenarbeit

LOGIN_HISTORY

  • Protokolliert jeden Login-Versuch am Account
    • Erfolgreich oder nicht
SELECT user_name,
       event_timestamp,
       reported_client_type,
       error_code,
       error_message
FROM SNOWFLAKE.ACCOUNT_USAGE.LOGIN_HISTORY
WHERE error_code IS NOT NULL
  AND event_timestamp >= DATEADD('day', -7, CURRENT_TIMESTAMP())
ORDER BY event_timestamp DESC;
Snowflake-Management, Governance & Zusammenarbeit

Lass uns üben!

Snowflake-Management, Governance & Zusammenarbeit

Preparing Video For Download...